Introdução
O LSP (Language Server Protocol) é um padrão aberto usado para comunicação entre um editor de código e um servidor de idiomas. Um servidor de linguagem é um processo que fornece recursos específicos da linguagem, como ir para definição e renomeação de um símbolo de código em sua base de código. Um "servidor LSP" é qualquer servidor de idioma que dê suporte ao Protocolo do Servidor de Idiomas.
CLI do GitHub Copilot pode usar servidores LSP para entender a estrutura do código com mais precisão. Ao adicionar e configurar um servidor LSP para cada linguagem de programação em seu projeto, você dará CLI do Copilot uma melhor compreensão do seu código.
Benefícios dos servidores LSP
- Precisão: os resultados são provenientes do próprio compilador/analisador do idioma, fornecendo uma compreensão da estrutura do seu código. Isso melhora a precisão de Copilot quando ele trabalha com seu código. Por exemplo, quando Copilot pode usar "ir para definição", ele encontrará a definição real, não uma correspondência de texto semelhante.
- Eficiência de token: operações como "listar todos os símbolos" ou "localizar referências" retornam resultados estruturados compactos em vez de exigir que o agente leia arquivos inteiros na conversa.
- Refatoração segura: quando você renomeia um símbolo, o servidor LSP atualiza de forma confiável todas as referências em todo o projeto.
- Velocidade: os servidores de linguagem indexam seu projeto em segundo plano, permitindo respostas quase instantâneas.
O que os servidores LSP permitem CLI do Copilot fazer
Quando os servidores LSP estão disponíveis, CLI do Copilot eles são usados automaticamente. Você não precisa solicitá-lo explicitamente. CLI do Copilot usará um servidor LSP em vez de uma pesquisa baseada em texto sempre que puder acessar um servidor LSP para a linguagem de programação que você está usando.
Há suporte para as seguintes operações de servidor de idioma:
| Operação | O que faz |
|---|---|
| Ir para a definição | Salta para onde um símbolo (função, classe, variável) é definido. |
| Localizar referências | Localiza cada local onde um símbolo é usado. |
| Passar o cursor | Recupera informações de tipo e documentação para um símbolo. |
| Renomear | Renomeia um símbolo em todo o projeto, atualizando todas as referências. |
| Símbolos de documento | Lista todos os símbolos definidos em um arquivo. |
| Pesquisa de símbolos do espaço de trabalho | Pesquisa símbolos por nome em todo o projeto. |
| Ir para a implementação | Localiza implementações de uma interface ou método abstrato. |
| Chamadas de entrada | Mostra quais funções chamam uma determinada função. |
| Chamadas de saída | Mostra quais funções uma determinada função chama. |
Copilot seleciona a operação LSP mais apropriada com base em seu prompt. Por exemplo, se você perguntar "onde está `handlePayment` definido?", Copilot usará a operação de go-to-definition.
Como adicionar um servidor LSP
Para CLI do Copilot poder usar um servidor LSP, primeiro instale o software do servidor em seu computador local e configure-o em um dos arquivos de configuração que CLI do Copilot lê na inicialização. Consulte Adicionando servidores LSP para CLI do GitHub Copilot.
Um servidor LSP também pode ser adicionado como parte de um plug-in da CLI que você escolhe instalar. Um plug-in poderá incluir um servidor LSP se, por exemplo, ele for projetado para funcionar com uma linguagem de programação incomum ou um tipo de arquivo específico da estrutura. Os servidores LSP incluídos como parte de um plug-in ficam automaticamente disponíveis quando você instala o plug-in. Nenhuma configuração adicional é necessária. Se você desinstalar o plug-in, o servidor LSP será removido. Para obter mais informações, consulte Sobre plug-ins para CLI do GitHub Copilot.
Como os servidores LSP são carregados
Quando CLI do GitHub Copilot é iniciado, ele carrega configurações de servidor LSP de várias fontes na seguinte ordem de prioridade (da mais alta para a mais baixa):
-
**Project config**: `.github/lsp.json` no repositório atual. -
**Configurações de plug-in**: servidores de idioma fornecidos por plug-ins instalados. -
**Configuração do usuário**: `~/.copilot/lsp-config.json`.
As configurações de prioridade mais alta substituem as de prioridade mais baixa com o mesmo nome de servidor. Isso significa que um projeto pode personalizar ou desabilitar servidores de idioma para todos os colaboradores.
Depois que o diretório de trabalho for confiável, CLI do Copilot iniciará automaticamente todos os servidores LSP relevantes para seu projeto, em segundo plano, para que estejam prontos para responder imediatamente quando necessário.
Próximas Etapas
Leitura adicional
- Language Server Protocol no site da Microsoft
- referência de comando da CLI GitHub Copilot