Condividi tramite


Interfaccia IVsProvideColorableItems

Notifica all'editor di codice sugli elementi colorabili personalizzati offerti dal servizio di linguaggio.

Spazio dei nomi:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (in Microsoft.VisualStudio.TextManager.Interop.dll)

Sintassi

'Dichiarazione
<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

Il tipo IVsProvideColorableItems espone i seguenti membri.

Metodi

  Nome Descrizione
Metodo pubblico GetColorableItem Determina le informazioni dell'elemento per ogni elemento il colore personalizzato fornito dal servizio di linguaggio.
Metodo pubblico GetItemCount Determina il numero di elementi colorabili personalizzati offerti dal servizio di linguaggio.

In alto

Note

Distribuzione IVsProvideColorableItems, fornisce gli elementi colorabili personalizzati all'editor principale e che l'editor principale del numero di elementi colorabili forniti e il relativo colore predefinito/impostazioni di formattazione è. L'editor principale gestisce le selezioni dei colori dell'utente corrente per gli elementi colorabili (come imposta in opzioni finestra di dialogo scegliere strumenti menu). Come gli elementi colorabili predefiniti, il linguaggio non dispone del controllo diretto sull'aspetto visivo dei relativi elementi colorabili oltre a specificare i valori predefiniti.

Questa interfaccia viene utilizzata per notificare all'editor sugli elementi del linguaggio oltre a quelli forniti DEFAULTITEMS. Non tentare di ridefinire gli elementi del linguaggio esistenti (ad esempio, i commenti o parole chiave) e non utilizzare lo stesso nome degli elementi di linguaggio predefinito o di oggetto esistente.

Note per gli implementatori

Per supportare gli elementi colorabili personalizzati nel servizio di linguaggio, è necessario implementare questa interfaccia nella stessa classe che implementa IVsLanguageInfo collegare e fornire il supporto per accedere all'interfaccia con QueryInterface metodo. Per implementare i metodi e IVsProvideColorableItems interfaccia, è necessario un elenco di IVsColorableItemoggetti per fornire su richiesta (vedere IVsColorableItem interfaccia per un esempio di come creare un elenco di elementi colorabili personalizzati).

Note per i chiamanti

un editor ottiene questa interfaccia chiamando QueryInterface metodo in IVsLanguageInfo collegare che rappresenta un servizio di linguaggio.

Esempi

Di seguito è riportato un esempio di come questa interfaccia può essere distribuita in un servizio di linguaggio. l'esempio in IVsColorableItem viene illustrato come implementare l'interfaccia MyColorableItem classe.

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

Vedere anche

Riferimenti

Spazio dei nomi Microsoft.VisualStudio.TextManager.Interop