如何使用 IContentAssist 处理器在自动完成中显示附加信息弹出窗口
How to show addicional information popup in auto-complete using IContentAssistProcessor
我创建了一个自定义的 eclipse 编辑器 (AbstractDecoratedTextEditor
) 并使用 IContentAssistProcessor
实现了自动完成功能。
在扩展 IContentAssistProcessor
的 class 中,我重写了 computeCompletionProposals
的方法 returns ICompletionProposal
.
的列表
但是当自动完成对话框为 运行 时,我无法像 Java 那样在黄色对话框中显示附加信息。
例如,在 Java 我有 Javadoc 对话框:
但是在我的自定义自动完成中,我无法创建这个黄色对话框来显示附加信息。
如何创建此对话框?
要显示附加信息弹出窗口,您需要做两件事:
ICompletionProposal#getAdditionalProposalInfo()
必须 return 包含信息的字符串,这可能是您已经拥有的信息。
- 用于显示提案的
ContentAssistant
必须有一个 IInformationControlCreator
集。使用 contentAssistant.setInformationControlCreator()
分配一个。以下是信息控制创建者的示例:
class SimpleInformationControlCreator implements IInformationControlCreator {
public IInformationControl createInformationControl( Shell shell ) {
return new DefaultInformationControl( shell, true );
}
}
我创建了一个自定义的 eclipse 编辑器 (AbstractDecoratedTextEditor
) 并使用 IContentAssistProcessor
实现了自动完成功能。
在扩展 IContentAssistProcessor
的 class 中,我重写了 computeCompletionProposals
的方法 returns ICompletionProposal
.
但是当自动完成对话框为 运行 时,我无法像 Java 那样在黄色对话框中显示附加信息。
例如,在 Java 我有 Javadoc 对话框:
但是在我的自定义自动完成中,我无法创建这个黄色对话框来显示附加信息。
如何创建此对话框?
要显示附加信息弹出窗口,您需要做两件事:
ICompletionProposal#getAdditionalProposalInfo()
必须 return 包含信息的字符串,这可能是您已经拥有的信息。- 用于显示提案的
ContentAssistant
必须有一个IInformationControlCreator
集。使用contentAssistant.setInformationControlCreator()
分配一个。以下是信息控制创建者的示例:
class SimpleInformationControlCreator implements IInformationControlCreator {
public IInformationControl createInformationControl( Shell shell ) {
return new DefaultInformationControl( shell, true );
}
}