如何使用 IContentAssist 处理器在自动完成中显示附加信息弹出窗口

How to show addicional information popup in auto-complete using IContentAssistProcessor

我创建了一个自定义的 eclipse 编辑器 (AbstractDecoratedTextEditor) 并使用 IContentAssistProcessor 实现了自动完成功能。

在扩展 IContentAssistProcessor 的 class 中,我重写了 computeCompletionProposals 的方法 returns ICompletionProposal.

的列表

但是当自动完成对话框为 运行 时,我无法像 Java 那样在黄色对话框中显示附加信息。

例如,在 Java 我有 Javadoc 对话框:

但是在我的自定义自动完成中,我无法创建这个黄色对话框来显示附加信息。

如何创建此对话框?

要显示附加信息弹出窗口,您需要做两件事:

  1. ICompletionProposal#getAdditionalProposalInfo() 必须 return 包含信息的字符串,这可能是您已经拥有的信息。
  2. 用于显示提案的 ContentAssistant 必须有一个 IInformationControlCreator 集。使用 contentAssistant.setInformationControlCreator() 分配一个。以下是信息控制创建者的示例:
class SimpleInformationControlCreator implements IInformationControlCreator {
  public IInformationControl createInformationControl( Shell shell ) {
    return new DefaultInformationControl( shell, true );
  }
}