Partilhar via


Interface IVsProvideColorableItems

Informa o editor de código sobre itens personalizados de colorable, proffered pelo serviço de linguagem.

Namespace:  Microsoft.VisualStudio.TextManager.Interop
Assembly:  Microsoft.VisualStudio.TextManager.Interop (em Microsoft.VisualStudio.TextManager.Interop.dll)

Sintaxe

'Declaração
<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

O tipo IVsProvideColorableItems expõe os membros a seguir.

Métodos

  Nome Descrição
Método público GetColorableItem Determina as informações do item para cada item personalizado de colorable proffered pelo serviço de linguagem.
Método público GetItemCount Determina o número de itens personalizados de colorable, proffered pelo serviço de linguagem.

Superior

Comentários

Com a implementação de IVsProvideColorableItems, você proffer itens colorable personalizados para o editor de núcleo e informar o editor do núcleo do número de itens colorable fornecidos e quais são suas configurações de cor/negrito padrão. O editor de núcleo gerencia seleções de cores atual do usuário para seus colorable itens (como definido na Opções caixa de diálogo na Ferramentas menu). Como os itens de colorable padrão, o idioma não tem controle direto sobre a aparência visual de seus itens colorable, além de especificar seus valores padrão.

Essa interface é usada para informar o editor de elementos de linguagem além daquelas fornecidas pelo DEFAULTITEMS. Não tente redefinir elementos de linguagem existente (por exemplo, comentários ou palavras-chave) e não use o mesmo nome como elementos de linguagem existente ou padrão.

Observações para implementadores

Para oferecer suporte a itens personalizados de colorable no seu serviço de idioma, você deve implementar essa interface da mesma classe que implementa o IVsLanguageInfo de interface e fornecer suporte para acessar a interface por meio do QueryInterface método. Implementar os métodos na IVsProvideColorableItems interface, você precisa de uma lista de IVsColorableItems para oferecer sob demanda (consulte a IVsColorableItem interface para obter um exemplo de como criar uma lista de itens personalizados de colorable).

Observações para chamadores

Um editor obtém essa interface chamando o QueryInterface método na IVsLanguageInfo interface que representa um serviço de linguagem.

Exemplos

Aqui está um exemplo de como esta interface pode ser implementada em um serviço de linguagem. O exemplo de IVsColorableItem interface mostra como implementar a 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;
        }
    }
}

Consulte também

Referência

Namespace Microsoft.VisualStudio.TextManager.Interop