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};
}
这是结果:
这很好,但是例如,在Java编辑器的内容辅助中,它们使用的颜色是蓝色和灰色:
我知道有一个名为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