舊版語言服務模型
發行︰ 2016年7月
如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件。
語言服務定義的項目和功能特定的語言,並用來提供編輯器] 中以該語言特定資訊。 比方說,編輯器必須知道為了支援語法標色的元素和語言的關鍵字。
語言服務密切管理的編輯器和檢視,其中包含編輯器] 中的文字緩衝區中。 Microsoft IntelliSense快速諮詢選項是語言服務所提供之功能的範例。
最小語言服務
最基本的語言服務包含下列兩個物件︰
語言服務實作IVsLanguageInfo介面。 語言服務提供的語言,包括其名稱、 副檔名的檔案、 程式碼視窗管理員 」 和色彩標示器資訊。
色彩標示器實作IVsColorizer介面。
以下概念圖顯示基本語言服務模型。
基本語言服務模型
文件視窗主機文件檢視編輯器,在此情況下的Visual Studio核心編輯器。 編輯器] 中所擁有的文件檢視和文字緩衝區。 這些物件使用Visual Studio透過特殊文件視窗呼叫程式碼視窗。 程式碼] 視窗內IVsWindowFrame是建立並控制在 IDE 的物件。
載入指定的副檔名的檔案時,編輯器] 中找出該副檔名相關聯的語言服務並將傳遞給它的程式碼視窗藉由呼叫GetCodeWindowManager方法。 語言服務會傳回程式碼視窗管理員,它會實作IVsCodeWindowManager介面。
下表提供模型中物件的概觀。
元件 | 物件 | 函式 |
---|---|---|
文字緩衝區 | VsTextBuffer | Unicode 讀取/寫入文字資料流。 您可使用其他編碼的文字。 |
程式碼視窗 | VsCodeWindow | 文件視窗,其中包含一或多個文字檢視。 當Visual Studio是在多重文件介面 (MDI) 模式中,程式碼視窗會是 MDI 子系。 |
文字檢視 | VsTextView | 可讓使用者瀏覽,以及使用鍵盤和滑鼠來檢視文字視窗。 向使用者顯示做為編輯器文字檢視。 您可以使用一般的編輯器視窗、 [輸出] 視窗和即時運算視窗中的文字檢視。 此外,您可以設定程式碼視窗內的一個或多個文字檢視。 |
文字管理員 | 由SVsTextManager服務,從您要取得其IVsTextManager指標 | 此元件可維護先前所述的所有元件都共用的一般資訊。 |
語言服務 | 實作而定。實作IVsLanguageInfo | 編輯器提供語法反白顯示、 陳述式完成和括號對稱等語言特有資訊的物件。 |