共用方式為


語言服務的模型

語言服務定義的項目和功能,針對特定語言,並用來提供該語言特定的資訊中的編輯器]。 比方說,編輯器] 中,需要知道的項目和語言的關鍵字,才能支援語法標色。

語言服務密切管理編輯器] 和 [檢視] 中包含編輯器] 中的文字緩衝區中。 Microsoft IntelliSense 快速諮詢選項是一種語言服務所提供的功能的範例。

最小的語言服務

最基本的語言服務包含下列兩個物件:

  • 語言服務實作IVsLanguageInfo介面。 語言服務有語言,包括其名稱、 副檔名、 程式碼視窗管理員 」 和 colorizer 的相關資訊。

  • Colorizer 實作IVsColorizer介面。

下列的概念圖顯示基本語言服務的模型。

基本語言服務模型

語言服務模型圖形

文件視窗的主機文件檢視的編輯器中,在這種情況下Visual Studio核心編輯器。 文件檢視] 和 [文字緩衝區均屬編輯器]。 這些物件將會使用Visual Studio使用特殊的文件] 視窗中,呼叫程式碼] 視窗。 程式碼] 視窗包含在IVsWindowFrame ,建立且由 IDE 控制的物件。

當載入具有指定副檔名的檔案時,編輯器] 中尋找該副檔名相關聯的語言服務並傳遞至其程式碼] 視窗點撥打GetCodeWindowManager方法。 語言服務,則傳回的程式碼視窗管理員,哪一個實作IVsCodeWindowManager介面。

下表概要說明模型中的物件。

元件

物件

Function

文字緩衝區

VsTextBuffer

Unicode 讀取/寫入文字資料流。 很可能使用其他編碼方式的文字。

程式碼] 視窗

VsCodeWindow

文件視窗,其中包含一或多個文字檢視。 當Visual Studio是在多重文件介面 (MDI) 模式中,程式碼] 視窗是 MDI 子系。

文字檢視

VsTextView

這種視窗可讓使用者瀏覽,然後使用鍵盤和滑鼠來檢視文字。 文字檢視會顯示給使用者,作為編輯者。 您可以使用一般的編輯器視窗、 [輸出] 視窗和 [即時運算] 視窗中的文字檢視。 此外,您可以設定一或多個程式碼] 視窗內的文字檢視。

文字管理員

SVsTextManager服務,從您取得IVsTextManager指標

這種元件會維護先前所述的所有元件所共用的一般資訊。

語言服務

實作相關。 實作IVsLanguageInfo

語言特定的資訊,例如語法反白顯示、 陳述式完成和括號對稱會提供編輯器] 中的物件。

請參閱

概念

文件資料和自訂編輯器中的文件檢視