如何检测内容辅助是否在 SourceViewer 中打开
How to detect if content assist is open in a SourceViewer
我正在使用 SourceViewer
和 ContentAssistant
配置如下:
public class MySourceViewerConfiguration extends TextSourceViewerConfiguration {
@Override
public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
ContentAssistant assistant= new ContentAssistant();
...
return assistant;
}
}
SourceViewer sourceViewer = ...
sourceViewer.configure( new MySourceViewer() );
如何确定内容辅助当前是否处于活动状态,即提案弹出窗口 window 是否打开?
似乎无法直接查询 SourceViewer
内容辅助是否处于活动状态。
但是,如果在 SourceViewer
投入使用之前足够早地安装完成侦听器,它可以用于跟踪 assist sessions.
例如:
class ContentAssistListener implements ICompletionListener {
boolean contentAssistActive;
@Override
public void assistSessionStarted( ContentAssistEvent event ) {
contentAssistActive = true;
}
@Override
public void assistSessionEnded( ContentAssistEvent event ) {
contentAssistActive = false;
}
@Override
public void selectionChanged( ICompletionProposal proposal, boolean smartToggle ) {
}
}
如果内容辅助当前处于活动状态,contentAssistActive
字段将为 true
,否则为 false
。
我正在使用 SourceViewer
和 ContentAssistant
配置如下:
public class MySourceViewerConfiguration extends TextSourceViewerConfiguration {
@Override
public IContentAssistant getContentAssistant(ISourceViewer sourceViewer) {
ContentAssistant assistant= new ContentAssistant();
...
return assistant;
}
}
SourceViewer sourceViewer = ...
sourceViewer.configure( new MySourceViewer() );
如何确定内容辅助当前是否处于活动状态,即提案弹出窗口 window 是否打开?
似乎无法直接查询 SourceViewer
内容辅助是否处于活动状态。
但是,如果在 SourceViewer
投入使用之前足够早地安装完成侦听器,它可以用于跟踪 assist sessions.
例如:
class ContentAssistListener implements ICompletionListener {
boolean contentAssistActive;
@Override
public void assistSessionStarted( ContentAssistEvent event ) {
contentAssistActive = true;
}
@Override
public void assistSessionEnded( ContentAssistEvent event ) {
contentAssistActive = false;
}
@Override
public void selectionChanged( ICompletionProposal proposal, boolean smartToggle ) {
}
}
如果内容辅助当前处于活动状态,contentAssistActive
字段将为 true
,否则为 false
。