До сих пор класс SourceViewer рассматривался в контексте управления аннотациями исходного кода.
Помимо этого SourceViewer применяется для настройки расширений редактора. В частности таких функций, как всплывающие подсказки и выделение синтаксиса. Для этих функций редактор предоставляет класс SourceViewerConfiguration, с помощью которого выполняется настройка создаваемой программы просмотра SourceViewer. Для примера редактора Java требуется предоставить только подходящий класс SourceViewerConfiguration. Следующий фрагмент исходного кода показывает, каким образом JavaTextEditor создает собственную конфигурацию:
protected void initializeEditor() { super.initializeEditor(); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
Что делает класс JavaSourceViewerConfiguration? Он наследует класс SourceViewerConfiguration, определяющий стратегии применения расширений редактора. Например, автоматического сдвига, операции отмены, двойного щелчка, всплывающих подсказок, выделения синтаксиса и форматирования. Для реализации этих расширений в классе SourceViewerConfiguration предусмотрены общедоступные методы.
Если свойства, заданные в SourceViewerConfiguration, не соответствуют потребностям редактора, переопределите метод initializeEditor(), в соответствии с описанием, приведенным выше, и задайте собственную конфигурацию программы просмотра исходного кода. Конфигурация может переопределять методы, описанные в SourceViewerConfiguration, для предоставления настроенных вспомогательных объектов, позволяющих реализовать необходимые свойства редактора. В следующем фрагменте исходного кода показаны два способа предоставления вспомогательных объектов для примера редактора Java с помощью JavaSourceViewerConfiguration:
public IAnnotationHover getAnnotationHover(ISourceViewer sourceViewer) { return new JavaAnnotationHover(); } public IAutoIndentStrategy getAutoIndentStrategy(ISourceViewer sourceViewer, String contentType) { return (IDocument.DEFAULT_CONTENT_TYPE.equals(contentType) ? new JavaAutoIndentStrategy() : new DefaultAutoIndentStrategy()); }
Первый способ предусматривает создание настраиваемого вспомогательного класса, обеспечивающего реализацию всплывающих подсказок для аннотаций. Во втором методе выполняется проверка типа содержимого по умолчанию, позволяющая выбрать между стратегией автоматического выравнивания и стратегией по умолчанию.
Полное описание всех способов настройки программы просмотра исходного кода путем переопределения методов приведено в разделе справочника по API, посвященном классу SourceViewerConfiguration.