Do tej klasa SourceViewer omawiana była w kontekście zarządzania adnotacjami do kodu źródłowego.
Klasa SourceViewer jest również centralnym koncentratorem na potrzeby konfigurowania edytora z dołączanymi zachowaniami, takimi jak podpowiedzi dla tekstu i wyróżnianie składni. Ze względu na te funkcje edytor dostarcza klasę SourceViewerConfiguration, która jest używana do konfigurowania klasy SourceViewer w momencie jej tworzenia. Przykładowy edytor Java wymaga jedynie dostarczenia odpowiedniej dla niego klasy SourceViewerConfiguration. Poniższy fragment kodu pokazuje, w jaki sposób klasa JavaTextEditor tworzy własną konfigurację:
protected void initializeEditor() { super.initializeEditor(); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
Co robi klasa JavaSourceViewerConfiguration? Zachowanie tej klasy jest dziedziczone w znacznym stopniu z klasy SourceViewerConfiguration, która definiuje domyślne strategie dla dołączanych zachowań edytora, takich jak automatyczne tworzenie wcięć tekstu, cofanie operacji, dwukrotne kliknięcie, podpowiedzi dla tekstu, wyróżnianie składni oraz formatowanie. Publiczne metody klasy SourceViewerConfiguration udostępniają obiekty pomocnicze implementujące te zachowania.
Jeśli domyślne zachowanie zdefiniowane w klasie SourceViewerConfiguration nie pasuje do danego edytora, należy przesłonić metodę initializeEditor() (jak pokazano wyżej) i ustawić w edytorze własną konfigurację przeglądarki kodu źródłowego. Aby dostarczyć niestandardowe obiekty pomocnicze, które zaimplementują to zachowanie w edytorze, można przesłonić metody w klasie SourceViewerConfiguration. Poniższy fragment kodu pokazuje dwa ze sposobów, w jakie klasa JavaSourceViewerConfiguration dostarcza niestandardowe obiekty pomocnicze do przykładowego edytora Java:
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()); }
W pierwszym sposobie niestandardowa klasa pomocnicza jest dostarczana na potrzeby implementacji podpowiedzi dla adnotacji. W drugim sposobie domyślny typ treści dokumentu określa, czy ma zostać użyta niestandardowa strategia automatycznego tworzenia wcięć tekstu czy strategia domyślna.
Informacje na temat wszystkich sposobów konfiguracji przeglądarki kodu źródłowego przez przesłonięcie metod zawiera sekcja dotycząca interfejsu API dla klasy SourceViewerConfiguration.