Visual Studio 環境 SDK 編輯器,包括核心編輯器,使用語言服務來識別特定的語法項目,並以指定的色彩在文件檢視中顯示它們。
色彩設定需求
實作語言服務著色器的所有編輯器都必須:
使用 實作 IVsTextBuffer 的物件來管理要著色的文字,並使用實作 IVsTextView 的物件來提供文字的文件檢視。
透過語言服務的 GUID 查詢 VSPackage 的服務提供者,以取得特定語言服務的接口。
SetLanguageServiceID呼叫實作 IVsTextBuffer之物件的方法。 此方法會將語言服務與 IVsTextBuffer VSPackage 用來管理要著色之文字的實作產生關聯。
語言服務著色器的核心編輯器使用方式
當具有著色器的語言服務被核心編輯器的實例獲取後,語言服務的著色器會自動對文字進行剖析和呈現,無需您進一步介入。
IDE 會以透明的方式運行
視需要呼叫著色器,以剖析和分析文字,因為它會在實作 IVsTextBuffer中新增或修改。
確保實作所提供之文件檢視所提供的 IVsTextView 顯示已更新,並使用著色器傳回的資訊重新繪製。
語言服務著色器的非核心編輯器使用方式
非核心編輯器實例也可以使用語言服務提供的語法著色功能,但它們必須明確取得並套用著色器,並自行重新繪製文件檢視。
若要這樣做,非核心編輯器必須:
取得語言服務的著色器對象(實作 IVsColorizer 和 IVsColorizer2)。 VSPackage 會藉由在語言服務介面上呼叫 GetColorizer 方法來執行這項作。
ColorizeLine呼叫 方法,要求特定文字範圍標示色彩。
方法 ColorizeLine 會傳回一個值陣列,每個值都對應於要著色文字範圍中的一個字母。 它也會將文字範圍識別為特定類型的可著色項目,例如批注、關鍵字或數據類型。
使用 ColorizeLine 傳回的著色資訊來重新著色並顯示其文字。
備註
除了使用語言服務的著色器之外,VSPackage 還可以選擇使用一般用途的Visual Studio環境 SDK 文字著色機制。 如需此機制的詳細資訊,請參閱 使用字型和色彩。