Eclipse4 RCP SourceViewer语法着色

Eclipse4 RCP SourceViewer语法着色,eclipse,eclipse-rcp,syntax-highlighting,text-editor,e4,Eclipse,Eclipse Rcp,Syntax Highlighting,Text Editor,E4,为了在Eclipse4RCP应用程序中实现语法着色,我创建了一个包含SourceViewer控件的基本插件项目 公共类SyntaxColoringTest{ /**用于创建编辑器的SourceViewer控件*/ publicsourceviewersv=null; @注入 公共语法着色测试(){ } @施工后 构造后的公共void(复合父级){ IVerticalRuler垂直标尺=新垂直标尺(10); Overview标尺Overview标尺=新的Overview标尺(空,20,空); sv

为了在Eclipse4RCP应用程序中实现语法着色,我创建了一个包含SourceViewer控件的基本插件项目

公共类SyntaxColoringTest{
/**用于创建编辑器的SourceViewer控件*/
publicsourceviewersv=null;
@注入
公共语法着色测试(){
}
@施工后
构造后的公共void(复合父级){
IVerticalRuler垂直标尺=新垂直标尺(10);
Overview标尺Overview标尺=新的Overview标尺(空,20,空);
sv=新的SourceViewer(父级、垂直标尺、概览标尺、true、SWT.MULTI | SWT.V|u SCROLL | SWT.H|u SCROLL);
configure(新的TestSourceViewerConf());
}
}
正在测试SourceViewerConf,如下所示:

公共类TestSourceViewerConf扩展了SourceViewerConfiguration{
公共伊藤健扫描仪;
公共规则;
公共场所;
公共TestSourceViewerConf(){
tokenScanner=createTokenScanner();
}
公共IPPresentationReconciler getPresentationReconciler(ISourceViewer){
PresentationReconciler对账器=新PresentationReconciler();
DefaultDamagerRepair DefDamagerRepair=新的DefaultDamagerRepair(tokenScanner);
对账器.setDamager(defDamagerRepair,IDocument.DEFAULT\u CONTENT\u TYPE);
对账器.SetRepair(DefdamagerRepair,IDocument.DEFAULT_CONTENT_TYPE);
返回对账器;
}
专用ITokenScanner createTokenScanner(){
RuleBasedScanner scanner=新的RuleBasedScanner();
scanner.setRules(createRules());
回程扫描仪;
}
私有IRule[]createRules(){
Display=Display.getCurrent();
Color blue=display.getSystemColor(SWT.Color\u blue);
IToken tokenA=新令牌(新文本属性(蓝色));
IToken tokenB=新令牌(新文本属性(蓝色));
patternRule=新的patternRule(“,tokenA,\\\”,false);
endofrinerule=新的endofrinerule(“+”,tokenB);
返回新的IRule[]{patternRule,endofrineUrle};
}
}
运行应用程序时,在“++”之后或介于“+”和“+”之间键入时,没有任何颜色
谢谢

这段代码适合我在自己的e4编辑器中测试

您没有显示源查看器的文档设置。如果不设置文档,我的测试将显示您看到的行为。将文档设置为:

IDocument doc=新文档(内容);
sv.setDocument(doc);

其中,
contents
是文档的初始内容。

现在可以按照您的建议设置文档。又是萨克斯。