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