StyledText无法使用setStyleRanges()更改样式

时间:2014-08-10 08:38:49

标签: java swt styledtext

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

}

不确定如何保持语法高亮显示活动,然后显示一些选定的标记。

1 个答案:

答案 0 :(得分:2)

您不能同时使用LineStyleListenersetStyleRanges,必须使用所有这些。

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