Partilhar via


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

Gráfico do modelo de serviço de linguagem

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

VsTextBuffer

Um fluxo de texto Unicode de leitura/gravação. É possível que o texto para usar outras codificações.

Janela de código

VsCodeWindow

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

VsTextView

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