我正在为编辑创建自定义内容帮助,这就是我创建建议的方式:
@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
结合使用。
答案 0 :(得分:5)
扩展界面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);