s
到目前為止,我們已查看過管理原始碼附註之環境定義中的 SourceViewer。
SourceViewer 也是中央核心,用以利用可外掛的行為(如滑鼠橫越時的說明和語法強調顯示)來配置您的編輯器。編輯器會提供 SourceViewerConfiguration ,以便在建立它時,用來配置 SourceViewer。 Java 範例編輯器僅需要提供適合它需求的 SourceViewerConfiguration 。下列片段顯示 JavaTextEditor 如何建立它的配置:
protected void initializeEditor() { super.initializeEditor(); JavaEditorEnvironment.connect(this); 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 參照。