Eclipse RCP Content Assist 不适用于自动激活的角色

Eclipse RCP Content Assist not working with auto activated characters

我定义了我自己的编辑器并且有这样的完成建议

    public IContentAssistant getContentAssistant(ISourceViewer sv) {
    ContentAssistant ca = new ContentAssistant();
    IContentAssistProcessor pr = new TagCompletionProcessor();
    ca.setContentAssistProcessor(pr, IDocument.DEFAULT_CONTENT_TYPE);
    return ca;
}

   @Override
   public char[] getCompletionProposalAutoActivationCharacters() {
      String str = "._abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ";
      return str.toCharArray();
   }

所以当我按 ctrl-space 输入时它会起作用,但我希望它应该总是在输入上述任何字符时触发 computeCompletionProposals

<extension
         point="org.eclipse.ui.editors">
      <editor
            id="testingpluginproject.editors.XMLEditor"
            name="Sample XML Editor"
            icon="icons/sample.png"
            extensions="xxml"
            class="testingpluginproject.editors.XMLEditor"
            contributorClass="org.eclipse.ui.texteditor.BasicTextEditorActionContributor">
      </editor>
   </extension>

所以我错过了什么?

您必须调用 ContentAssistant enableAutoActivation 方法来启用自动激活:

ca.enableAutoActivation(true);

您可能还想看看实现 IContentAssistProcessorExtension 而不仅仅是 IContentAssistProcessor,因为它提供了更好的 isCompletionProposalAutoActivation 方法。