在 Eclipse RCP 中向 CompletionProposal 添加样式(内容辅助)
Add style to CompletionProposal in 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};
}
这是结果:
很好,但是例如,在 Java 编辑器的内容辅助中,他们使用了蓝色和灰色等颜色:
我知道有一个名为 StyledText
的 class 可以提供帮助,但我找不到将其与 CompletionProposal
结合使用的好示例。
扩展接口ICompletionProposalExtension6
支持样式显示字符串。它的唯一方法getStyledDisplayString()
必须return一个用于显示的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);
我正在为编辑创建自定义内容辅助,这就是我创建提案的方式:
@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
的 class 可以提供帮助,但我找不到将其与 CompletionProposal
结合使用的好示例。
扩展接口ICompletionProposalExtension6
支持样式显示字符串。它的唯一方法getStyledDisplayString()
必须return一个用于显示的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);