共用方式為


IVsProvideColorableItems 介面

關於自訂一個提供的語言服務的可設定色彩項目,會通知程式碼編輯器。

命名空間:  Microsoft.VisualStudio.TextManager.Interop
組件:  Microsoft.VisualStudio.TextManager.Interop (在 Microsoft.VisualStudio.TextManager.Interop.dll 中)

語法

'宣告
<GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")> _
<InterfaceTypeAttribute()> _
Public Interface IVsProvideColorableItems
[GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")]
[InterfaceTypeAttribute()]
public interface IVsProvideColorableItems
[GuidAttribute(L"100B9A33-905C-4312-B2A2-452189F19AB9")]
[InterfaceTypeAttribute()]
public interface class IVsProvideColorableItems
[<GuidAttribute("100B9A33-905C-4312-B2A2-452189F19AB9")>]
[<InterfaceTypeAttribute()>]
type IVsProvideColorableItems =  interface end
public interface IVsProvideColorableItems

IVsProvideColorableItems 類型會公開下列成員。

方法

  名稱 描述
公用方法 GetColorableItem 決定每個自訂的可設定色彩項目,以一個提供的語言服務的項目資訊。
公用方法 GetItemCount 決定一個提供的語言服務的自訂可設定色彩項目數目。

回頁首

備註

藉由實作IVsProvideColorableItems、 proffer 自訂的可設定色彩項目至核心編輯器,並告知所提供的可設定色彩項目數量的核心編輯器和預設的色彩/粗體設定值為何。 核心編輯器管理使用者的目前色彩選取項目,您可設定色彩的項目 (以設定在選項 對話方塊在 工具功能表)。 預設值可設定色彩項目,像是語言都有它可設定色彩的項目,指定其預設值以外的視覺外觀不能直接控制。

這個介面用來通知以外所提供的語言項目中的編輯器] 中DEFAULTITEMS。 請勿嘗試重新定義現有語言項目 (例如,註解或關鍵字),並不會為現有的或預設的語言項目使用相同的名稱。

實作者注意事項

若要在您的語言服務中支援自訂的可設定色彩項目,您必須實作這個介面上實作的同一個類別IVsLanguageInfo介面,並提供支援,以存取的介面,透過QueryInterface方法。 若要實作這些方法在IVsProvideColorableItems介面,您需要一份IVsColorableItems 轉換成視需要提供最多 (請參閱IVsColorableItem介面,如需如何建立自訂的可設定色彩項目清單的範例)。

呼叫者注意事項

編輯器會將這個介面取得藉由呼叫QueryInterface中的方法IVsLanguageInfo ,表示語言服務的介面。

範例

以下是範例的方式可能會實作這個介面上語言服務。 範例中的,在IVsColorableItem介面會顯示如何實作MyColorableItem類別。

using Microsoft.VisualStudio;
using Microsoft.VisualStudio.TextManager.Interop;

namespace MyLanguagePackage
{
    class MyLanguageService : IVsLanguageInfo, IVsProvideColorableItems
    {
        private MyColorableItems colorableItemsList[];
        public MyLanguageService()
        {
            // populate the colorableItemsList here.
        }

        public int GetItemCount(out int piCount)
        {
            piCount = 0;
            if (this.colorableItemsList != null)
            {
                 if (this.colorableItemsList.Length > 0)
                 {
                     // The first color is a placeholder and is
                     // never counted.
                     piCount = this.colorableItemsList.Length - 1;
                 }
            }
            return VSConstants.S_OK;
        }

        public int GetColorableItem(int iIndex, out IVsColorableItem ppItem)
        {
            int retval = VsConstants.E_INVALIDARG;

            ppItem = null;
            if (this.colorableItemList != null &&
                iIndex >= 0 && iIndex < this.colorableItemList.Length)
            {
                 ppItem = this.colorableItemsList[iIndex];
                 retval = VSConstants.S_OK;
            }
            return retval;
        }
    }
}

請參閱

參考

Microsoft.VisualStudio.TextManager.Interop 命名空間