共用方式為


自訂編輯器中的語法著色

Visual Studio 環境 SDK 編輯器,包括核心編輯器,使用語言服務來識別特定的語法項目,並以指定的色彩在文件檢視中顯示它們。

色彩設定需求

實作語言服務著色器的所有編輯器都必須:

  1. 使用 實作 IVsTextBuffer 的物件來管理要著色的文字,並使用實作 IVsTextView 的物件來提供文字的文件檢視。

  2. 透過語言服務的 GUID 查詢 VSPackage 的服務提供者,以取得特定語言服務的接口。

  3. SetLanguageServiceID呼叫實作 IVsTextBuffer之物件的方法。 此方法會將語言服務與 IVsTextBuffer VSPackage 用來管理要著色之文字的實作產生關聯。

語言服務著色器的核心編輯器使用方式

當具有著色器的語言服務被核心編輯器的實例獲取後,語言服務的著色器會自動對文字進行剖析和呈現,無需您進一步介入。

IDE 會以透明的方式運行

  • 視需要呼叫著色器,以剖析和分析文字,因為它會在實作 IVsTextBuffer中新增或修改。

  • 確保實作所提供之文件檢視所提供的 IVsTextView 顯示已更新,並使用著色器傳回的資訊重新繪製。

語言服務著色器的非核心編輯器使用方式

非核心編輯器實例也可以使用語言服務提供的語法著色功能,但它們必須明確取得並套用著色器,並自行重新繪製文件檢視。

若要這樣做,非核心編輯器必須:

  1. 取得語言服務的著色器對象(實作 IVsColorizerIVsColorizer2)。 VSPackage 會藉由在語言服務介面上呼叫 GetColorizer 方法來執行這項作。

  2. ColorizeLine呼叫 方法,要求特定文字範圍標示色彩。

    方法 ColorizeLine 會傳回一個值陣列,每個值都對應於要著色文字範圍中的一個字母。 它也會將文字範圍識別為特定類型的可著色項目,例如批注、關鍵字或數據類型。

  3. 使用 ColorizeLine 傳回的著色資訊來重新著色並顯示其文字。

備註

除了使用語言服務的著色器之外,VSPackage 還可以選擇使用一般用途的Visual Studio環境 SDK 文字著色機制。 如需此機制的詳細資訊,請參閱 使用字型和色彩