Coloração de sintaxe em editores personalizados
Os editores do SDK do Visual Studio Environment, incluindo o editor principal, usam serviços de idioma para identificar itens sintáticos específicos e exibi-los com cores especificadas para um determinado modo de exibição de documento.
Requisitos de colorização
Todos os editores que implementam o colorizador de um serviço de idiomas devem:
Use uma implementação de objeto para gerenciar o texto a ser colorido e uma implementação IVsTextBuffer IVsTextView de objeto para fornecer uma exibição de documento do texto.
Obtenha uma interface para um serviço de idioma específico consultando o provedor de serviços do VSPackage usando o GUID de identificação do serviço de idiomas.
Chame o SetLanguageServiceID método do objeto que implementa IVsTextBuffer. Esse método associa o serviço de idioma com a IVsTextBuffer implementação que o VSPackage usa para gerenciar o texto que deve ser colorido.
Uso do Editor Principal do Colorizador de um Serviço de Idiomas
Quando um serviço de idioma com um colorizador é obtido por uma instância do editor principal, a análise e renderização de texto pelo colorizador de um serviço de idioma ocorre automaticamente sem exigir qualquer intervenção adicional de sua parte.
O IDE de forma transparente:
Chama o colorizador conforme necessário para analisar e analisar o texto à medida que ele é adicionado ou modificado na implementação do IVsTextBuffer.
Garante que a exibição fornecida pela exibição de IVsTextView documento fornecida pela implementação seja atualizada e repintada usando as informações retornadas pelo colorizador.
Uso não essencial do editor do colorizador de um serviço de idiomas
As instâncias do editor não essencial também podem usar o serviço de colorização de sintaxe de um serviço de idioma, mas devem recuperar e aplicar explicitamente o colorizador do serviço e repintar suas próprias exibições de documento.
Para fazer isso, um editor não-core deve:
Obter o objeto colorizador de um serviço de idioma (que implementa IVsColorizer e IVsColorizer2). O VSPackage faz isso chamando o GetColorizer método na interface do serviço de idioma.
Chame o ColorizeLine método para solicitar que uma determinada extensão de texto seja colorida.
O ColorizeLine método retorna uma matriz de valores, um para cada letra na extensão de texto que está sendo colorida. Ele também identifica a extensão do texto como um tipo específico de item colorido, como um comentário, palavra-chave ou tipo de dados.
Use as informações de colorização retornadas por ColorizeLine para repintar e exibir seu texto.
Observação
Além de usar o colorizador de um serviço de idioma, um VSPackage pode optar por usar o mecanismo de coloração de texto do SDK do Visual Studio Environment de uso geral. Para obter mais informações sobre esse mecanismo, consulte Usando fontes e cores.