配置程式檔檢視器

到目前為止,我們已查看過管理程式碼附註之環境定義中的 SourceViewer

SourceViewer 也是中央核心,用以利用可外掛的行為(如浮動說明和語法強調顯示)來配置您的編輯器。針對這些特性, 編輯器會提供 SourceViewerConfiguration,以便在建立它時,用來配置 SourceViewer。 Java 範例編輯器僅需要提供適合它需要的 SourceViewerConfiguration。下列片段顯示 JavaTextEditor 如何建立它的配置:

protected void initializeEditor() {
	super.initializeEditor();
	setSourceViewerConfiguration(new JavaSourceViewerConfiguration());
	...

JavaSourceViewerConfiguration 的作用為何?它的許多行為是繼承SourceViewerConfiguration, SourceViewerConfiguration 會為可外掛的編輯器行為(如自動內縮、復原行為、 按兩下行為、浮動說明、語法強調顯示,以及格式化)定義預設策略。SourceViewerConfiguration 中的 Public 方法提供有實作這些行為的 Helper 物件。

如果 SourceViewerConfiguration 中定義的預設行為不適合您的編輯器,您應該置換上面所示的 initializeEditor(), 然後設定您自己的程式檔檢視器配置並放入編輯器中。 您的配置可以置換 SourceViewerConfiguration 中的方法,以提供自訂的 Helper 物件,來實作您編輯器的行為。 下列片段顯示 JavaSourceViewerConfiguration 提供自訂的 Helper 物件給 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());
}

在第一種方法中,自訂的 Helper 類別是為了實作附註浮動說明而提供的。 在第二個方法中,將查詢文件的預設內容類型, 以判定是否應該使用自訂的自動內縮策略或預設策略。

如果需要所有您可以用來藉由置換方法而配置程式檔檢視器的方法,請參閱 SourceViewerConfiguration的 API 參照。