Eclipse RCP Content Assist 无法使用自动激活的字符
Posted
技术标签:
【中文标题】Eclipse RCP Content Assist 无法使用自动激活的字符【英文标题】:Eclipse RCP Content Assist not working with auto activated characters 【发布时间】:2022-01-13 12:19:44 【问题描述】:我定义了自己的编辑器,并有这样的完成建议
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>
那么我错过了什么?
【问题讨论】:
【参考方案1】:您必须调用ContentAssistant
enableAutoActivation
方法来启用自动激活:
ca.enableAutoActivation(true);
您可能还想考虑实现IContentAssistProcessorExtension
而不仅仅是IContentAssistProcessor
,因为它提供了更好的isCompletionProposalAutoActivation
方法。
【讨论】:
以上是关于Eclipse RCP Content Assist 无法使用自动激活的字符的主要内容,如果未能解决你的问题,请参考以下文章
Sleak (SWT & RCP) : 设备没有跟踪资源分配 (eclipse 4.3)
我想推荐一本关于 Eclipse 的富客户端平台 (RCP) 的书