Настройка программы просмотра исходного кода

До сих пор класс 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.