Compartilhar via


Classe ColorableItem

Fornece uma implementação padrão da interface do VSIP IVsColorableItem.

Esta API não compatível com CLS. 

Hierarquia de herança

System.Object
  Microsoft.VisualStudio.Package.ColorableItem

Namespace:  Microsoft.VisualStudio.Package
Assemblies:   Microsoft.VisualStudio.Package.LanguageService (em Microsoft.VisualStudio.Package.LanguageService.dll)
  Microsoft.VisualStudio.Package.LanguageService.10.0 (em Microsoft.VisualStudio.Package.LanguageService.10.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.11.0 (em Microsoft.VisualStudio.Package.LanguageService.11.0.dll)
  Microsoft.VisualStudio.Package.LanguageService.9.0 (em Microsoft.VisualStudio.Package.LanguageService.9.0.dll)

Sintaxe

'Declaração
<ComVisibleAttribute(True)> _
<CLSCompliantAttribute(False)> _
Public Class ColorableItem _
    Implements IVsColorableItem, IVsHiColorItem, IVsMergeableUIItem
[ComVisibleAttribute(true)]
[CLSCompliantAttribute(false)]
public class ColorableItem : IVsColorableItem, 
    IVsHiColorItem, IVsMergeableUIItem

O tipo ColorableItem expõe os membros a seguir.

Construtores

  Nome Descrição
Método público ColorableItem Inicializa o ColorableItem de classe e aceita todas as informações necessárias para descrever um item colorable.

Superior

Métodos

  Nome Descrição
Método público Equals determina se o objeto especificado é igual ao objeto atual. (Herdado de Object.)
Método protegido Finalize Permite que um objeto tentar liberar recursos e realizar outras operações de limpeza antes de ser recuperados pela coleta de lixo. (Herdado de Object.)
Método público GetCanonicalName Obtém o nome canônico de um item de colorable.
Método público GetColorData Obtenha o elemento de primeiro plano ou plano de fundo de cor especificada de alta.
Método público GetDefaultColors Retorna a cor de primeiro plano e plano de fundo para este item colorable.
Método público GetDefaultFontFlags Retorna os atributos de fonte para este item colorable.
Método público GetDescription Retorna uma descrição para este item colorable.
Método público GetDisplayName Retorna o nome deste item colorable.
Método público GetHashCode Serve como uma função de hash para um tipo específico. (Herdado de Object.)
Método público GetMergingPriority Retorna a prioridade deste item colorable possui quando comparado a outros itens de colorable o mesmo nome.
Método público GetType Obtém Type da instância atual. (Herdado de Object.)
Método protegido MemberwiseClone Cria uma cópia superficial de Objectatual. (Herdado de Object.)
Método público ToString Retorna uma cadeia de caracteres que representa o objeto atual. (Herdado de Object.)

Superior

Comentários

Essa classe é usada para definir cores personalizadas, usadas pelo serviço de linguagem para realce de sintaxe.O GetColorableItem método da implementação da LanguageService classe retorna um especificado IVsColorableItem objeto.

Observações para implementadores

Essa classe pode ser usada para implementar a IVsColorableItem interface.Apenas construa uma nova instância dessa classe para cada cor personalizada que você deseja implementar e retorne o item apropriado de colorable da GetColorableItem método.

O lugar ideal para construir uma matriz de cores personalizadas é no construtor da sua implementação da LanguageService classe.Se você oferecer suporte a personalização das cores, você poderia inicializar essa matriz em LanguageService.CreateDocumentProperties após a DocumentProperties o objeto foi criado.

Observações para chamadores

Essa classe é normalmente usada pela Colorizer classe em sua implementação de ColorizeLine.

Exemplos

Isso mostra um exemplo da LanguageService implementação que dê suporte a duas cores personalizadas (mais informações podem ser facilmente adicionadas).Observe que o primeiro item de colorable, na verdade, nunca é consultado e é usado como um espaço reservado (todos os índices de cor é passado para GetColorableItem comece em 1).

[C#]
namespace MyLanguagePackage
{
    [Guid("B614A40A-80D9-4fac-A6AD-FC2868FFF7CD")]
    public class MyLanguageService : LanguageService
    {
        private ColorableItem[] m_colorableItems;

        public MyLanguageService()
            : base()
        {
                m_colorableItems = new ColorableItem[] {
                    new ColorableItem("Text",
                                      COLORINDEX.CI_SYSPLAINTEXT_FG,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_DEFAULT),
                    new ColorableItem("Keyword",
                                      COLORINDEX.CI_MAROON,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_BOLD),
                    new ColorableItem("Comment",
                                      COLORINDEX.CI_GREEN,
                                      COLORINDEX.CI_SYSPLAINTEXT_BK,
                                      System.Drawing.Color.Empty,
                                      System.Drawing.Color.Empty,
                                      FONTFLAGS.FF_DEFAULT)
                };
        }
    }
}

Acesso thread-safe

Quaisquer membros estático (Shared no Visual Basic) públicos deste tipo são thread-safe. Não há garantia de que qualquer membro de instância seja thread-safe.

Consulte também

Referência

Namespace Microsoft.VisualStudio.Package