java - 向 Eclipse RCP 中的 Completion Proposal 添加样式(内容辅助)

标签 java eclipse-plugin eclipse-rcp content-assist

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

@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 结合使用的好示例。

最佳答案

扩展接口(interface) 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 RCP 中的 Completion Proposal 添加样式(内容辅助),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/51051864/

相关文章:

Java:将 JSON 结构反序列化为 Map<String, Object>

JAVA,NodeList XML在不知道XML内容的情况下获取所有子节点

eclipse - 如何设置 eclipse.ini -vm 选项?

java - AtomicReference<T> 的阻塞版本 - 等待 Eclipse 启动终止

eclipse-rcp - 每次启动时显示 Eclipse RCP 的欢迎页面

java - 使用 Eclipse RCP 程序打印

java - javax.annotation 在哪里

java - 使用回溯递归的 8 皇后问题

java - ScheduledExecutorService 多线程并行

java - 从 java 项目转换为插件项目的选项在哪里?