範例 - Java 編輯器
簡介
Java 編輯器範例示範自訂文字編輯器可用的標準特性。
它也顯示如何為副檔名登錄編輯器(這個案例中為 .jav)以及如何定義編輯器所使用的自訂文件提供者。
這個範例只作為示範。Java 編輯支援是由 Eclipse Java 工具開發所提供。
範例編輯器中所示範的特性
-
語法強調顯示
-
內容類型敏感性的內容協助(JavaDoc 和 Java 程式碼)
-
內容摘要與編輯器間的通訊,例如,內容摘要選項滿足編輯器強調顯示的範圍
-
兩個不同呈現方式
-
使用視覺化範圍指示器標記強調顯示範圍
-
限制編輯器以只顯示強調顯示範圍中的文字(例如,顯示 Java 類別的單一方法)
-
標示元處理
-
文件共用
未示範特性
執行範例編輯器
-
建立一個專案
-
在新建的專案中,建立副檔名為 ".jav" 的檔案。
Java 範例編輯器自動開啟。
-
插入 Java 程式碼。Java 程式碼會動態地上色。範例編輯器用不同的顏色表示
下列語言元素:多行註解、單行註解、Java 語言保留字、字串和字元常數、一般
Java 程式碼,還有遵循 JavaDoc 準則的多行註解。在這些 JavaDoc 註解中,
JavaDoc 關鍵字和標示是以不同的顏色表示。
-
在 Java 註解外插入 "/*" 以開啟新的 Java 多行註解。
在插入的 "/*" 和第一字元為 "*/" 或文字尾端之間的所有文字均變更為紅色。
附加另一個 "*"。當正規的多行註解現在被視為內含 JavaDoc 時,紅色範圍變為綠色。
使用 CTRL-SPACE 呼叫程式碼協助。
內容協助功能是在撰寫模式中支援使用者。
所以呼叫時,內容協助應在呼叫位置列出所有可能有效的完成。
在 JavaDoc 中,範例編輯器固定提供所有 JavaDoc 關鍵字。
-
在 Java 註解之外,使用 CTRL+SHIFT+SPACE 呼叫內容要訣。列出五個提議。
選取一個然後按下 ENTER。在目前顯示所選提議行的上方,會出現一個浮動紅色小視窗。
內容要訣的預期使用是,讓使用者表達他的意願,例如,輸入方法呼叫、表示引導使用者如此做的文字資訊。在範例編輯器中,提議被視為在起始呼叫位置中有效的五個字元。
看的見內容要訣時,使用 Ctrl+空白鍵呼叫內容協助。在這個狀況下呼叫的內容協助應幫助使用者
完成在內容要訣中看的見他所陳述的意願。在正規的 Java 程式碼中,範例編輯器固定提供所有 Java 關鍵字。
-
儲存 Java 程式碼。儲存更新內容概要畫面。內容概要畫面包含十個項目,而每一個代表
編輯器中十分之一大小的 Java 程式碼區段。內容概要畫面的這個樣式被選取來顯示可
任意定義的強調顯示範圍中的語意。(請參閱下一步)
-
選取內容概要畫面中的一個項目。在編輯器左邊垂直的尺規中,以藍色列標記對應的行。
-
現在切換至 Java 編輯器的區段呈現模式。
請確定編輯器有焦點以及按一下桌面上工具列中滑鼠橫越時說明為「啟用 / 停用區段原始檔檢視器」的按鈕。預期可以使用這個功能,例如,單一方法檢視器。
-
在內容概要畫面中選取不同的項目。現在,編輯器只顯示已選取的區段。
藉著取消選取內容概要畫面中的項目,再次顯示完整的 Java程式碼。
-
選取內容概要畫面中的項目,選取可見文字的小數並為選項新增作業。
作業清單中顯示出此作業。
修改可見的程式碼。在作業清單中,選取先前建立的作業並按一下「跳至檔案」按鈕。
在可見區域中選取的作業,正確地衡量先前套用的修正。
-
在內容概要畫面中選取另一個項目。顯示之前從作業清單中新增的作業。
編輯器的強調顯示範圍為自動加大以含括已顯示作業的範圍。
-
開啟新工作區。在新工作區中,為同一個檔案開啟 Java 編輯器,如同在原始工作區中所為。
修改編輯器內容。切換至原始工作區。編輯器會顯示在其他工作區中所作的變更。
顯示相同的檔案的兩個編輯器為即時的鏈結。
建立自訂文字編輯器的原則
下列步驟為通常開發自訂文字編輯器所作的必要步驟。
-
建立文件提供者。文件提供者(請參照 IDocumentProvider)產生並管理文件(請參照 IDocument),
包含編輯器輸入元素的文字表示法。
決定元素和文字表示法之間如何轉譯,以及文件提供者是否應為多重編輯器所共用,都是非常重要的。
請參閱 Java 範例編輯器中的類別 FileDocumentProvider。
-
建立文件分割器。文件分割器(請參照 IDocumentPartitioner)將文件分割成各個沒有交集的區域。
分割器指派每一個區域一個內容類型,而這些內容類型是在分割器中預先定義的內容類型集。
每一個文件變更時,文件的分割區也隨之更新。
請參閱 Java 範例編輯器中的類別 JavaPartitioner。
JavaPartitioner 決定了多行註解類型、JavaDoc 註解類型和其他類型的區域。
必須確定文件提供者設定在文件提供者產生的每一個文件上。
-
決定應提供的原始檔檢視器外掛程式。其他支援外掛程式為「自動內縮策略」、「快速按二下策略」、「內容格式製作程式」和「文字呈現方式調解器」。後續的說明限制為「文字呈現調解器」
(請參照 IPresentationReconciler)。
在 Java 範例編輯器中,文字呈現方式調解器用來實作語法強調顯示。
-
為所有原始檔檢視器外掛程式的每一個支援內容類型建立適當的延伸項目。
如上面所看到的,文件分割器定義支援的內容類型。
IPresentationReconciler 預設實作支援 IPresentationDamagers 和 IPresentationRepairers 作為延伸項目。
這些延伸項目被視為專為特定的內容類型所定。
但是,對自訂編輯器來說,使用者首先必須選取支援的內容類型的子集。
類型區域作為選取的子集的成員將會標示出語法(舉例)。
這些類型中的任一個必須實作延伸項目。
請參閱範例編輯器中 JavaDamagerRepairer 和 JavaDocDamagerRepairer。
-
使用先前建立的外掛程式和延伸項目建置原始檔檢視器。
請參閱範例編輯器中 JavaSourceViewerConfiguration。
-
以開發的文件分割器和原始檔檢視器配置來自訂類別 TextEditor 或 AbstractTextEditor。
新增或取代動作並適應編輯器快速功能表的建置。在確實的版本中,這個自訂作業必須在子類別中完成。
請參閱範例編輯器中 JavaEditor。
-
設定提供編輯器相關的動作之適當的動作列提供者至桌面的工具列和功能表。
請參閱範例編輯器中 JavaActionContributor。
-
延伸編輯器外掛程式的 XML 配置檔,所以編輯器登錄在特定檔案集延伸項目預先定義的編輯器延伸點上。
也在 XML 檔案中設定了動作列提供者。
請參閱這個範例的 plugin.xml。
範例的程式碼組織
範例程式碼組織在四個套件中:
-
org.eclipse.ui.examples.javaeditor 包含所有編輯器特定的類別。
-
org.eclipse.ui.examples.javaeditor.java 包含所有 Java 特定的原始檔
檢視器外掛程式,例如,JavaDamagerRepairer 以及 Java 特定的文件切割器。
-
org.eclipse.ui.examples.javaeditor.javadoc 包含所有 JavaDoc 特定的原始檔檢視器外掛程式,
例如,JavaDocDamagerRepairer。
org.eclipse.ui.examples.javaeditor.util 包含其他三個套件所共用的便利類別。