Share via


IVsProvideColorableItems, interface

Informe l'éditeur de code sur des éléments personnalisés qui autorisent la modification de la couleur offerts par le service de langage.

Espace de noms :  Microsoft.VisualStudio.TextManager.Interop
Assembly :  Microsoft.VisualStudio.TextManager.Interop (dans Microsoft.VisualStudio.TextManager.Interop.dll)

Syntaxe

'Déclaration
<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

Le type IVsProvideColorableItems expose les membres suivants.

Méthodes

  Nom Description
Méthode publique GetColorableItem Détermine les informations d'élément pour chaque élément coloriable personnalisé offert par le service de langage.
Méthode publique GetItemCount Détermine le nombre d'éléments personnalisés qui autorisent la modification de la couleur offerts par le service de langage.

Début

Notes

En implémentant IVsProvideColorableItems, vous offrent les éléments qui autorisent la modification de la couleur personnalisés au principal éditeur et informez le principal éditeur du nombre d'éléments qui autorisent la modification de la couleur fournis et lesquels sont leur couleur par défaut/paramètres gras. Le principal éditeur gère les sélections des couleurs actuelles de l'utilisateur pour vos éléments qui autorisent la modification de la couleur (comme définit dans la boîte de dialogue d'Options sur le menu d'Outils). Comme les éléments qui autorisent la modification de la couleur par défaut, le langage n'a pas de contrôle direct sur de l'apparence visuelle de ses éléments qui autorisent la modification de la couleur au delà de spécifier leurs valeurs par défaut.

Cette interface est utilisée pour informer l'éditeur sur des éléments de langage en plus de celles fournies par DEFAULTITEMS. Ne tentez pas de redéfinir les éléments de langage existants (par exemple, les commentaires ou des mots clés), et n'utilisez pas le même nom que des éléments de exister ou de langue par défaut.

Remarques à l'attention des implémenteurs

Pour prendre en charge les éléments qui autorisent la modification de la couleur personnalisés dans votre service de langage, vous devez implémenter cette interface sur la même classe qui implémente l'interface d'IVsLanguageInfo et fournissez la prise en charge pour accéder à l'interface via la méthode de QueryInterface. Pour appliquer les méthodes sur IVsProvideColorableItems interface, vous devez d'une liste d'IVsColorableItem s pour offrir à la demande (voyez l'interface d'IVsColorableItem pour un exemple de la façon de créer une liste d'éléments qui autorisent la modification de la couleur personnalisés).

Remarques à l'attention des appelants

Un éditeur reçoit cette interface en appelant la méthode de QueryInterface dans l'interface d'IVsLanguageInfo qui représente un service de langage.

Exemples

Voici un exemple de la façon dont cette interface peut être implémentée sur un service de langage. L'exemple dans l'interface d'IVsColorableItem montre comment implémenter la classe d'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;
        }
    }
}

Voir aussi

Référence

Microsoft.VisualStudio.TextManager.Interop, espace de noms