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;
}
}
}