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);


}

不知道如何使语法突出显示保持活动状态,然后显示一些选定的标记。

最佳答案

您不能同时使用LineStyleListenersetStyleRanges,而必须同时使用所有一个。

您可以查看JFace TextViewerSourceViewerTextPresentation类,它们提供了在StyledText上设置样式的方法,这些使用setStyleRanges

10-01 00:21