StyledText не может изменить стиль с помощью setStyleRanges()

Виджет 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);

}

Не уверен, как сохранить подсветку синтаксиса, а затем показать некоторые выбранные токены.


person Masud Rahman    schedule 10.08.2014    source источник
comment
Что не так с этим вопросом? Почему минусы?   -  person Maarten Bodewes    schedule 10.08.2014
comment
@owlstead, вы имеете в виду подсветку синтаксиса в StyledText? Можете ли вы привести пример?   -  person Masud Rahman    schedule 11.08.2014


Ответы (1)


Вы не можете использовать LineStyleListener и setStyleRanges одновременно, вы должны использовать все одно или другое.

Вы можете взглянуть на классы JFace TextViewer, SourceViewer и TextPresentation, которые предоставляют способы установки стилей для StyledText, они используют setStyleRanges.

person greg-449    schedule 10.08.2014