ここまでは、ソース・コード注釈の管理との関連において SourceViewer について調べてきました。
SourceViewer も、 テキスト吹き出しや構文強調表示といったプラグ可能動作を行うエディターを構成するための中心的な存在です。 これらの機能のため、エディターは、SourceViewer が 作成されるときにこれを構成するための SourceViewerConfiguration を提供しています。 Java サンプル・エディターは、その必要性に適した SourceViewerConfiguration を 提供するだけです。 以下の断片は、どのように JavaTextEditor がその構成を作成するかを示しています。
protected void initializeEditor() { super.initializeEditor(); setSourceViewerConfiguration(new JavaSourceViewerConfiguration()); ...
JavaSourceViewerConfiguration は何を行うのでしょうか? その動作の多くは、 プラグ可能エディターの動作 (自動インデント、元に戻す動作、ダブルクリック動作、テキスト吹き出し、構文強調表示、 書式設定など) のデフォルト・ストラテジーを定義する SourceViewerConfiguration から 継承されています。 SourceViewerConfiguration の共通メソッドは、これらの動作をインプリメントするヘルパー・オブジェクトを提供します。
SourceViewerConfiguration に 定義されているデフォルト動作がエディターに適さない場合は、上に示されている initializeEditor() をオーバーライドし、 あなた自身のソース・ビューアー構成をエディターに設定する必要があります。 その構成は SourceViewerConfiguration の メソッドをオーバーライドし、あなたのエディターの動作をインプリメントするカスタマイズ済みヘルパー・オブジェクトを提供します。 以下の断片は、JavaSourceViewerConfiguration が Java エディター・サンプルのカスタマイズ済みヘルパー・オブジェクトを 提供する 2 つの方法を示しています。
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()); }
最初のメソッドでは、注釈吹き出しをインプリメントするためにカスタマイズ済みヘルパー・クラスが提供されています。 2 つ目のメソッドでは、カスタマイズ済み自動インデント・ストラテジーが使用されるか、デフォルト・ストラテジーが使用されるかを 決定するため、文書のデフォルト・コンテンツ・タイプが照会されています。
メソッドをオーバーライドすることによって、ソース・ビューアーを構成するための方法すべてについては、 SourceViewerConfiguration の API リファレンスを参照してください。