Partilhar via


Interfaces de serviço do idioma

Para qualquer linguagem de programação específica, pode haver apenas uma instância de um serviço de linguagem ao mesmo tempo. No entanto, um serviço único idioma pode servir a mais de um editor.

Visual Studionão associar a um serviço de linguagem com qualquer editor específico. Portanto, quando você solicita uma operação de serviço do idioma, você deve identificar o editor apropriado como parâmetro.

Interfaces comuns associados aos serviços de idioma

O editor obtém seu serviço de linguagem chamando QueryService sobre o VSPackage apropriado. O serviço de identificação (SID) passado esta chamada identifica o serviço de linguagem que está sendo solicitado.

Você pode implementar interfaces principais idiomas serviço em qualquer número de classes separadas. No entanto, uma abordagem comum é implementar as seguintes interfaces em uma única classe:

O IVsLanguageInfo interface deve ser implementada em todos os serviços de idioma. Ele fornece informações sobre o seu serviço de linguagem, como, por exemplo, o nome localizado do idioma, as extensões de nome de arquivo associados com o serviço de linguagem e como recuperar um colorizer.

Interfaces de serviço adicionais do idioma

Outras interfaces podem ser fornecidas com seu serviço de linguagem. Visual Studiosolicita uma instância separada dessas interfaces para cada instância do buffer de texto. Portanto, você deve implementar cada uma dessas interfaces em seu próprio objeto. A tabela a seguir mostra as interfaces que exigem uma instância por instância do buffer de texto.

Interface

Descrição

IVsCodeWindowManager

Gerencia ornamentos de janela de código, como a barra de menu suspenso. Você pode obter essa interface usando o GetCodeWindowManager método. Existe uma IVsCodeWindowManager por janela de código.

IVsColorizer

Colore delimitadores e palavras-chave de idioma. Você pode obter essa interface usando o GetColorizer método. IVsColorizerdenomina-se ao tempo de pintura. Evitar trabalho intensivo de computação dentro de IVsColorizer ou desempenho poderia ser prejudicado.

IVsMethodData

Fornece dicas de ferramentas de parâmetro de IntelliSense. Quando o serviço de linguagem reconhece um caractere que indica que os dados método deve ser exibidos, como, por exemplo, um parêntese aberto, ele chama o SetMethodData view do método para notificar o texto que o serviço de idioma está pronto para exibir um parâmetro Info ToolTip. O modo de exibição de texto, em seguida, chama de volta o serviço de linguagem, usando os métodos da IVsMethodData interface para obter as informações necessárias para exibir a dica de ferramenta.

IVsCompletionSet

Fornece a conclusão da instrução IntelliSense. Quando o serviço de idioma está pronto para exibir uma lista de conclusão, ele chama o UpdateCompletionStatus método no modo de exibição de texto. O modo de exibição de texto, em seguida, chama de volta o serviço de linguagem por usando métodos de IVsCompletionSet objeto.

IVsTextViewFilter

Permite a modificação do modo de exibição de texto usando o manipulador de comandos. A classe na qual você implementa a IVsTextViewFilter também deve implementar a interface do IOleCommandTarget interface. O modo de exibição de texto recupera o IVsTextViewFilter objeto consultando o IOleCommandTarget objeto que é passado para o AddCommandFilter método. Deve haver um IVsTextViewFilter o objeto para cada modo de exibição.

IOleCommandTarget

Intercepta os comandos que o usuário digita na janela de código. Monitorar a saída do seu IOleCommandTarget implementação para fornecer informações personalizadas de conclusão e exibir a modificação

Para passar o IOleCommandTarget o objeto no modo de exibição de texto, chamada AddCommandFilter.

Consulte também

Conceitos

Lista de verificação: Criação de um serviço de linguagem

Outros recursos

Desenvolvimento de um serviço de linguagem