在編輯器中自訂色彩的語法
Visual Studio 環境 SDK 編輯器,包括核心編輯器] 中,會使用語言服務,來識別特定的語法項目,並使用指定的文件檢視的指定色彩顯示。
顏色標示需求
所有編輯器實作語言服務的 colorizer 都必須:
使用物件實作IVsTextBuffer來管理以色彩標示的文字和物件實作IVsTextView提供文件檢視的文字。
查詢使用語言服務的識別 GUID 的 VSPackage 服務提供者,以取得特定語言服務的介面。
呼叫SetLanguageServiceID的物件實作的方法IVsTextBuffer。 這個方法將相關聯的語言卸除IVsTextBuffer VSPackage 用來管理要能以色彩標示文字的實作。
核心編輯器的語言服務的 Colorizer 的使用方式
Colorizer 的語言服務時,核心編輯器、 剖析和轉譯的文字語言服務的 colorizer 的執行個體來取得自動發生而不需要您採取任何進一步的介入。
IDE 以透明方式:
呼叫地剖析和分析文字,因為它是在新增或修改的實作 colorizer 視IVsTextBuffer。
確保所提供的文件檢視所提供的顯示IVsTextView實作更新,並重新繪製使用 colorizer 所傳回的資訊。
語言服務的 Colorizer 的非核心編輯器使用方式
非核心編輯器執行個體也可以使用語言的語法顏色標示服務,但是它們必須明確地擷取和套用服務的 colorizer 和重繪其本身的文件檢視模式。
若要執行這項操作需要非核心編輯器:
取得語言服務的 colorizer 物件 (哪一個實作T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizer和IVsColorizer2)。 您 VSPackage 的運作方式是呼叫GetColorizer語言服務的介面上的方法。
呼叫ColorizeLine方法,以要求特定的文字範圍會以色彩標示。
ColorizeLine方法會傳回一個陣列值、 另一個則用於在文字中的每個字母跨越以色彩標示。 它也可識別特定類型的可設定色彩的項目,例如註解、 關鍵字或資料型別為文字範圍。
使用所傳回的顏色標示資訊ColorizeLine重繪,並顯示其文字。
注意事項 |
---|
除了使用語言服務的 colorizer,VSPackage 可以選擇要使用的一般用途的 Visual Studio 環境 SDK 文字上色機制。如需有關這項機制的詳細資訊,請參閱字型。 |