Compartir a través de


IVsProvideColorableItems (Interfaz)

Informa al editor de código sobre los elementos colorear personalizados ofrecidos por el servicio de lenguaje.

Espacio de nombres:  Microsoft.VisualStudio.TextManager.Interop
Ensamblado:  Microsoft.VisualStudio.TextManager.Interop (en Microsoft.VisualStudio.TextManager.Interop.dll)

Sintaxis

'Declaración
<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

El tipo IVsProvideColorableItems expone los siguientes miembros.

Métodos

  Nombre Descripción
Método público GetColorableItem Determina la información sobre el elemento de cada elemento coloreable personalizado ofrecido por el servicio de lenguaje.
Método público GetItemCount Determina el número de elementos colorear personalizados ofrecidos por el servicio de lenguaje.

Arriba

Comentarios

Implementar IVsProvideColorableItems, para obtener elementos colorear personalizados al editor básico e indica al editor básico el número de elementos colorear proporcionados y cuáles el color predeterminado/valores negrita es. El editor básico administra las selecciones de color actual del usuario para los elementos colorear (como establece en el cuadro de diálogo de Opciones en el menú de Herramientas ). Como elementos colorear predeterminados, el lenguaje no tiene ningún control directo sobre el aspecto visual de los elementos colorear más allá de especificar sus valores predeterminados.

Esta interfaz se utiliza para informar al editor sobre elementos de lenguaje más allá de los proporcionados por DEFAULTITEMS. No intente volver a definir elementos de lenguaje existentes (por ejemplo, los comentarios o palabras clave), y no utilice el mismo nombre que los elementos de la existencia o de idioma predeterminado.

Notas para los implementadores

Para admitir elementos colorear personalizados en el servicio de lenguaje, debe implementar esta interfaz en la misma clase que implementa la interfaz de IVsLanguageInfo y proporciona compatibilidad para tener acceso a la interfaz con el método de QueryInterface . Para implementar los métodos en la interfaz de IVsProvideColorableItems , necesita una lista de s de IVsColorableItemproporcionar hacia arriba a petición (vea la interfaz de IVsColorableItem para obtener un ejemplo de cómo crear una lista de elementos colorear personalizados).

Notas para los llamadores

Un editor obtiene esta interfaz llamando al método de QueryInterface en la interfaz de IVsLanguageInfo que representa un servicio de lenguaje.

Ejemplos

A continuación se muestra un ejemplo de cómo esta interfaz se puede implementar en un servicio de lenguaje. El ejemplo de la interfaz de IVsColorableItem muestra cómo implementar la clase de 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;
        }
    }
}

Vea también

Referencia

Microsoft.VisualStudio.TextManager.Interop (Espacio de nombres)