共用方式為


語法著色在舊版語言服務

 

如需 Visual Studio 2017 的最新文件請參閱 Visual Studio 2017 文件

Visual Studio使用著色服務來識別語言的項目並顯示在編輯器中指定的色彩。

色彩標示器模型

語言服務會實作IVsColorizer介面,然後由編輯器。 這項實作是語言服務的個別物件,如下圖所示。

SVC 色彩標示器圖形
簡單的色彩標示器模型

注意

不同於一般著色服務的語法,是Visual Studio機制標示的文字色彩。 如需有關一般Visual Studio SDK機制支援上色功能,請參閱使用字型和色彩

除了色彩標示器,語言服務可以提供自訂色彩的項目編輯器所使用的廣告,它會提供自訂色彩的項目。 您可以藉由實作IVsProvideColorableItems介面實作的相同物件上IVsLanguageInfo介面。 當編輯器] 中呼叫時,它會傳回的自訂色彩的項目數GetItemCount方法,且會傳回個別的自訂色彩項目的時,編輯器會呼叫GetColorableItem方法。

GetColorableItem方法會傳回該物件會實作IVsColorableItem介面。 如果語言服務支援 24 位元或高的色彩值,就必須實作IVsHiColorItem上相同的物件做為介面IVsColorableItem介面。

如何在 VSPackage 中使用語言服務色彩標示器

  1. VSPackage 必須取得適當的語言服務,這需要語言服務 VSPackage 執行下列操作︰

    1. 使用物件實作IVsTextBuffer介面,以取得會以色彩標示的文字。

      文字通常會顯示使用該物件會實作IVsTextView介面。

    2. 取得語言服務藉由查詢語言服務 GUID VSPackage 的服務提供者。 語言服務是以副檔名識別登錄中。

    3. 建立關聯的語言服務IVsTextBuffer藉由呼叫其SetLanguageServiceID方法。

  2. VSPackage 現在可以取得及使用的色彩標示器物件,如下所示︰

    注意

    使用核心編輯器的 VSPackages 就不必明確地取得語言服務的色彩標示器物件。 核心編輯器的執行個體取得適當的語言服務,因為它會執行如下所示的所有顏色標示工作。

    1. 取得語言服務的色彩標示器物件會實作T:Microsoft.VisualStudio.TextManager.Interop.IVsColorizer,和IVsColorizer2介面,藉由呼叫GetColorizer語言服務上的方法IVsLanguageInfo物件。

    2. 呼叫ColorizeLine方法,以取得特定範圍的色彩標示器資訊的文字。

      ColorizeLine文字中每個字元的其中一個傳回值的陣列,跨越以色彩標示。 有效值為維護核心編輯器的預設色彩項目的清單或自訂色彩項目的清單本身的語言服務所維護的色彩的項目清單中的索引。

    3. 使用所傳回的顏色標示資訊ColorizeLine方法,以顯示選取的文字。

注意

除了使用語言服務色彩標示器,VSPackage 也可以使用一般用途Visual Studio著色機制的文字。 如需這項機制的詳細資訊,請參閱使用字型和色彩

本章節內容

實作語法標色
討論編輯器會存取語言服務的語法標色和語言服務必須實作這個方法以支援語法著色。

如何︰ 使用內建可設定色彩的項目
示範如何使用內建可設定色彩的項目從語言服務。

自訂色彩的項目
討論如何實作自訂色彩的項目。

另請參閱

使用字型和色彩