語法標色
Visual Studio使用色彩服務辨識的語言項目並將它們顯示在編輯器中指定的色彩。
Colorizer 模型
語言的服務實作IVsColorizer介面,將由編輯器。 這項實作是語言服務中,從另一個物件,如下列圖例所示。
簡單的 colorizer 模型
注意事項 |
---|
語法色彩服務是有別於一般Visual Studio colorizing 文字的機制。如需有關一般Visual Studio SDK colorizing,所支援的機制,請參閱字型。 |
除了 colorizer,語言服務可以提供自訂的可設定色彩項目,由編輯器] 中的廣告會提供自訂的可設定色彩項目。 您可以藉由實作IVsProvideColorableItems上相同的物件實作的介面IVsLanguageInfo介面。 當編輯器] 中的呼叫時,它會傳回自訂的可設定色彩項目數目GetItemCount方法,並傳回個別的自訂可設定色彩項目時,編輯器會呼叫GetColorableItem方法。
GetColorableItem方法會傳回物件實作IVsColorableItem介面。 如果語言服務支援 24 位元] 或 [高的色彩值,它必須實作IVsHiColorItem上相同的物件,做為介面IVsColorableItem介面。
VSPackage 如何使用語言服務 Colorizer
VSPackage 必須取得適當的語言服務,這需要語言服務來執行下列 VSPackage:
使用物件實作IVsTextBuffer介面,以取得會以色彩標示的文字。
文字通常會顯示使用物件實作IVsTextView介面。
取得語言服務的查詢語言服務 GUID VSPackage 的服務提供者。 語言服務會識別在登錄中,依檔案副檔名。
將相關聯的語言卸除IVsTextBuffer點撥打的SetLanguageServiceID方法。
VSPackage 現在可以取得並使用 colorizer 物件,如下所示:
注意事項 取得語言服務的 colorizer 物件明確不需要使用核心編輯器的 VSPackages。核心編輯器的執行個體取得適當的語言服務,因為它會執行下面顯示的所有顏色標示任務。
取得語言服務的 colorizer 物件會實作T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizer,以及IVsColorizer2介面,藉由呼叫GetColorizer上語言服務的方法IVsLanguageInfo物件。
呼叫ColorizeLine方法,以取得特定範圍的 colorizer 資訊的文字。
ColorizeLine傳回一個用來以色彩標示的文字範圍中的每個字元的值陣列。 這些值會插入可設定色彩的項目清單是由核心編輯器所維護的預設值可設定色彩的項目清單或自訂的可設定色彩項目清單本身的語言服務所維護的索引。
使用所傳回的顏色標示資訊ColorizeLine方法,以顯示選取的文字。
注意事項 |
---|
除了使用語言服務 colorizer,VSPackage 也可以使用一般用途Visual Studio文字上色的機制。如需有關這項機制的詳細資訊,請參閱字型。 |
本章節內容
實作的語法標色
討論語言服務的語法標色和語言服務必須以支援語法的實作色彩編輯器存取的方式。How to: 使用內建的可設定色彩項目
示範如何使用內建的可設定色彩項目,從語言服務。自訂可設定色彩的項目
討論如何實作自訂的可設定色彩項目。