StyledText小部件显示一段Java代码,并且使用JavaLineStyler突出显示语法。但是,我想显示一些使用
codeViewer.setStyleRanges(sranges); //sranges is an array of StyleRange
但是,看起来第二轮样式更改是由StyledText小部件源中的以下代码片段阻止的。
public void setStyleRanges(StyleRange[] ranges) {
checkWidget();
if (isListening(ST.LineGetStyle)) return;
if (ranges == null) SWT.error(SWT.ERROR_NULL_ARGUMENT);
setStyleRanges(0, 0, null, ranges, true);
}
不知道如何使语法突出显示保持活动状态,然后显示一些选定的标记。
最佳答案
您不能同时使用LineStyleListener
和setStyleRanges
,而必须同时使用所有一个。
您可以查看JFace TextViewer
,SourceViewer
和TextPresentation
类,它们提供了在StyledText
上设置样式的方法,这些使用setStyleRanges
。