Modelo de um serviço de linguagem
Um serviço de linguagem define os elementos e recursos para um idioma específico e é usado para fornecer o editor com informações específicas para esse idioma. Por exemplo, o editor precisa saber os elementos e as palavras-chave da linguagem para oferecer suporte a coloração de sintaxe.
O serviço de linguagem trabalha junto com o buffer de texto gerenciado pelo editor e o modo de exibição que contém o editor. O IntelliSense Microsoft Informações rápidas opção é um exemplo de um recurso fornecido por um serviço de linguagem.
Um serviço de linguagem mínima
O serviço de linguagem mais básico contém os dois objetos a seguintes:
O serviço de linguagem implementa o IVsLanguageInfo interface. Um serviço de linguagem possui informações sobre a linguagem, incluindo seu nome, extensões de nome de arquivo, Gerenciador de janelas de código e colorizer.
O colorizer implementa o IVsColorizer interface.
O desenho conceitual a seguir mostra um modelo de um serviço da linguagem basic.
Modelo de serviço de linguagem básica
Os hosts da janela de documento a exibição de documento do editor, neste caso o Visual Studio editor núcleo. O modo de exibição do documento e o buffer de texto são propriedade pelo editor. Esses objetos trabalham com Visual Studio através de uma janela de documento especializado chamado um janela de código. A janela de código está contida em um IVsWindowFrame o objeto que é criado e controlado pelo IDE.
Quando um arquivo com uma determinada extensão é carregado, o editor localiza o serviço de idioma associado a essa extensão e entregues a ele a janela de código, chamando o GetCodeWindowManager método. A idioma serviço retorna um Gerenciador de janelas de código, que implementa o IVsCodeWindowManager interface.
A tabela a seguir fornece uma visão geral dos objetos no modelo.
Componente |
Object |
Função |
---|---|---|
Buffer de texto |
Um fluxo de texto Unicode de leitura/gravação. É possível que o texto para usar outras codificações. |
|
Janela de código |
Uma janela de documento que contém um ou mais modos de exibição de texto. Quando Visual Studio está no modo de interface de documentos múltiplos (MDI), a janela de código é um filho MDI. |
|
Modo de exibição de texto |
Uma janela que permite ao usuário navegar e exibir o texto usando o teclado e mouse. Um modo de exibição de texto aparece para o usuário como um editor. Você pode usar os modos de exibição de texto em janelas do editor comum, a janela de saída e a janela Verificação imediata. Além disso, você pode configurar um ou mais modos de texto dentro de uma janela de código. |
|
Gerenciador de texto |
Gerenciado pela SVsTextManager de serviço, do qual obter um IVsTextManager ponteiro |
Um componente que mantém informações comuns compartilhadas por todos os componentes descritos anteriormente. |
Serviço de linguagem |
Implementação dependente; implementaIVsLanguageInfo |
Um objeto que fornece o editor de informações específicas do idioma, como realce de sintaxe, conclusão da instrução e correspondência de chave. |
Consulte também
Conceitos
Dados do documento e visualização de documentos em editores personalizados