编程语言
首页 > 编程语言> > java – 在Eclipse RCP中添加样式到CompletionProposal(内容辅助)

java – 在Eclipse RCP中添加样式到CompletionProposal(内容辅助)

作者:互联网

我正在为编辑器创建自定义内容辅助,这就是我创建提案的方式:

@Override
public ICompletionProposal[] computeCompletionProposals(ITextViewer viewer, int offset) {
    String test = "Test";
    ContextInformation contextInfo = new ContextInformation("Context display test", "information display test");
    CompletionProposal proposal = new CompletionProposal(test,
            offset, 
            0, 
            test.length(),
            Activator.getImage("icons/sample.png"), 
            test,
            contextInfo,
            "Additional info");
    return new ICompletionProposal[] {proposal}; 
}

这是结果:

enter image description here

这很好,但是例如,在Java编辑器的内容辅助中,它们使用的颜色是蓝色和灰色:

enter image description here

我知道有一个名为StyledText的类可能会有所帮助,但我找不到一个很好的例子来将它与CompletionProposal结合使用.

解决方法:

扩展接口ICompletionProposalExtension6支持样式化显示字符串.它唯一的方法getStyledDisplayString()必须返回一个用于显示的StyledString.

您不必创建CompletionProposal实例,而是必须实现自己的ICompletionProposal,它也实现了上述扩展.例如:

class StyledCompletionProposal 
    implements ICompletionProposal, ICompletionProposalExtension6 
{

  ...

  @Override
  public StyledString getStyledDisplayString() {
    return new StyledString("test").append(" [10%]", Styler.QUALIFIER_STYLER);
  }

}

此外,必须将内容助手配置为启用彩色标签.对于编辑器,这通常在SourceViewerConfiguration :: getContentAssistant中完成:

ContentAssistant contentAssistant = new ContentAssistant();
contentAssistant.enableColoredLabels(true);

标签:java,eclipse-plugin,eclipse-rcp,content-assist
来源: https://codeday.me/bug/20190607/1194495.html