Implementando a coloração de sintaxe
Quando o serviço de linguagem fornece a colorização de sintaxe, o analisador converte uma linha de texto em uma matriz de itens colorable e retorna os tipos de token correspondente a esses itens de colorable. O analisador deve retornar tipos de token que pertencem a uma lista de itens colorable. Visual StudioExibe cada item colorable a janela de código de acordo com os atributos atribuídos pelo objeto colorizer para o tipo de token apropriado.
Visual StudioEspecifica uma interface de analisador, e a implementação do analisador é completamente cabe a você. No entanto, uma implementação do analisador de padrão é fornecida no projeto Visual Studio pacote de idioma. Para código gerenciado, a estrutura de pacote gerenciado (MPF) fornece suporte completo para colorir o texto.
Etapas seguidas por um Editor de texto de colorização.
O editor obtém o colorizer, chamando o GetColorizer método na IVsLanguageInfo objeto.
As chamadas do editor do GetStateMaintenanceFlag método para determinar se o colorizer precisa o estado de cada linha para ser mantida fora do colorizer.
Se o colorizer requer que o estado seja mantido fora do colorizer, o editor chama o GetStartState método para obter o estado da primeira linha.
Para cada linha no buffer, o editor chama o ColorizeLine método, que executa as seguintes etapas:
A linha de texto é passada para um scanner para converter o texto em tokens. Cada token Especifica o texto de token e o tipo de token.
O tipo de token é convertido em um índice em uma lista de itens colorable.
As informações de token são usadas para preencher uma matriz de modo que cada elemento da matriz corresponde a um caractere na linha. Os valores armazenados na matriz são os índices para a lista de itens colorable.
O estado no final da linha é retornado para cada linha.
Se o colorizer requer que o estado seja mantido, o editor armazena em cache o estado para aquela linha.
O editor processa a linha de texto usando as informações retornadas a ColorizeLine método. Isso requer as seguintes etapas:
Para cada caractere na linha, obter o índice do item colorable.
Se usando os itens de colorable padrão, acesse a lista de itens de colorable do editor.
Caso contrário, ligue para o serviço de linguagem GetColorableItem método para obter um item colorable.
Use as informações no item colorable para processar o texto na exibição.
Colorizer de estrutura de pacote gerenciado
A estrutura de pacote gerenciado (MPF) fornece todas as classes que são necessárias para implementar um colorizer. Sua classe de serviço da linguagem deve herdar a LanguageService de classe e implementar os métodos necessários. Você deve fornecer um scanner e o analisador Implementando o IScanner interface e retornar uma instância da interface da GetScanner método (um dos métodos que devem ser implementados na LanguageService classe). Para obter mais informações, consulte Sintaxe colorir (estrutura de pacote gerenciado).
Consulte também
Tarefas
Como: usar itens internos de Colorable
Conceitos
Sintaxe colorir (estrutura de pacote gerenciado)