Introdução
Este artigo explica como adicionar servidores LSP para CLI do Copilot. Para obter informações conceituais sobre servidores LSP, consulte Usando servidores LSP com CLI do GitHub Copilot.
Adicionar um servidor LSP para CLI do Copilot é um processo de duas etapas:
- Instale o software do servidor LSP em seu computador local.
- Configure o servidor em um arquivo de configuração.
Essas etapas estão descritas aqui neste artigo.
Instalando e configurando um servidor LSP
Você pode adicionar um servidor LSP para um idioma específico:
- Usando a habilidade
lsp-setup, que automatiza o processo. - Instalando manualmente o software do servidor e configurando CLI do Copilot para usar o servidor.
Essas duas abordagens são descritas nas seções abaixo.
Usando o lsp-setup recurso para adicionar um servidor de linguagem
A skill lsp-setup do repositório "Awesome GitHub Copilot" automatiza a instalação e configuração de uma seleção de linguagens populares.
-
Acesse o site de downloads do "Awesome GitHub Copilot" e procure por "lsp":
https://awesome-copilot.github.com/skills/?q=lsp. -
Baixe a skill
lsp-setup. -
Descompacte o arquivo baixado
.zippara criar um diretório chamadolsp-setup. -
Mova o diretório
lsp-setuppara um dos seguintes locais:- Seu diretório de habilidades pessoais:
~/.copilot/skills/. - Um diretório de habilidades de projeto:
.github/skills/em um repositório Git.
- Seu diretório de habilidades pessoais:
-
Inicie CLI do Copilotou, se você estiver atualmente em uma sessão da CLI, insira
/skills reload. -
Insira o comando:
Copilot prompt setup lsp
setup lsp -
Siga as instruções na tela para selecionar o idioma do servidor que você deseja configurar e, em seguida, conclua as etapas adicionais.
-
Quando o processo for concluído, insira
/lsp reloadpara carregar o novo servidor LSP. -
Verifique se o servidor foi adicionado e está funcionando corretamente. Consulte Confirmando se um servidor LSP está disponível posteriormente neste artigo.
Instalando e configurando manualmente um servidor LSP
A instalação de um servidor LSP para um idioma específico normalmente envolve a instalação de um pacote por meio de um gerenciador de pacotes, como npm, gemou pip.
Para instalar manualmente um servidor LSP, consulte a documentação do servidor de idioma específico que você deseja instalar. Listados abaixo estão alguns comandos de exemplo para instalar servidores LSP populares.
Observação
Os recursos úteis para localizar servidores LSP para diferentes idiomas incluem: * Implementations no site do Protocolo do Servidor de Idiomas da Microsoft. * Protocolo do Servidor de Idiomas no site do Arch Linux.
Cuidado
Instale apenas servidores LSP de fontes confiáveis.
Comando de instalação de exemplo: TypeScript e JavaScript
Se você tiver Node.js instalado, poderá instalar o typescript-language-server servidor LSP com o seguinte comando:
npm install -g typescript typescript-language-server
npm install -g typescript typescript-language-server
O typescript-language-server servidor LSP dá suporte a TypeScript e JavaScript.
Comando de instalação de exemplo: Ruby
Se você tiver o Gem instalado, poderá instalar o ruby-lsp servidor LSP com o seguinte comando:
gem install ruby-lsp
gem install ruby-lsp
Como alternativa, você pode instalar o solargraph servidor LSP para Ruby com:
gem install solargraph
gem install solargraph
Comando de instalação de exemplo: Python
Se você tiver Node.js instalado, poderá instalar o pyright servidor LSP com o seguinte comando:
npm install -g pyright
npm install -g pyright
Como alternativa, se você tiver o pip instalado, poderá instalar o python-lsp-server servidor LSP com:
pip install python-lsp-server
pip install python-lsp-server
Configurando o servidor de idiomas
-
Para configurar o servidor LSP, adicione uma definição de servidor a qualquer um dos dois arquivos de configuração:
- Configuração do usuário:
~/.copilot/lsp-config.jsonaplica-se a todos os seus projetos. - Configuração do projeto:
.github/lsp.json, em seu repositório, aplica-se a todos que trabalham nesse projeto.
Ambos os arquivos usam a mesma sintaxe JSON:
{ "lspServers": { "SERVER-NAME": { "command": "COMMAND", "args": ["ARG1", "ARG2"], "fileExtensions": { ".EXT": "LANGUAGE-ID" } }, "ANOTHER-SERVER": { ... } } }Alguns exemplos de definições de servidor para servidores LSP específicos são fornecidos posteriormente neste artigo.
- Configuração do usuário:
-
Depois de instalar e configurar o servidor, confirme se CLI do Copilot ele pode usá-lo. Consulte Confirmando se um servidor LSP está disponível abaixo.
Campos de configuração
Cada definição de servidor no arquivo de configuração deve ter um nome exclusivo e conter apenas caracteres alfanuméricos, sublinhados e hifens.
Dentro de cada definição de servidor, os seguintes campos estão disponíveis/necessários:
| Campo | Obrigatório | Descrição |
|---|---|---|
command |
Sim | O comando usado para iniciar o servidor LSP. |
args |
No | Argumentos a serem passados para o comando. |
fileExtensions |
Sim | Um mapa JSON de extensões de arquivo e sua ID de idioma correspondente (por exemplo, { ".rs": "rust" }). |
env |
No | Variáveis de ambiente a serem definidas ao iniciar o servidor. Suporta a sintaxe de expansão ${VAR} e ${VAR:-default}. |
rootUri |
No | O diretório raiz do servidor LSP em relação à raiz do Git. Usa "." como padrão. Útil para monorepos. Se o projeto estiver em um subdiretório do repositório Git em vez da raiz do repositório, defina rootUri para esse caminho de subdiretório. |
initializationOptions |
No | Opções personalizadas enviadas ao servidor durante a inicialização. |
requestTimeoutMs |
No | O tempo limite para solicitações de servidor em milissegundos (padrão: 90 segundos). |
Exemplo de definição de servidor: typescript-language-server servidor LSP
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact",
".mjs": "javascript",
".cjs": "javascript",
".mts": "typescript",
".cts": "typescript"
}
}
}
}
{
"lspServers": {
"typescript": {
"command": "typescript-language-server",
"args": ["--stdio"],
"fileExtensions": {
".ts": "typescript",
".tsx": "typescriptreact",
".js": "javascript",
".jsx": "javascriptreact",
".mjs": "javascript",
".cjs": "javascript",
".mts": "typescript",
".cts": "typescript"
}
}
}
}
Exemplo de definição de servidor: ruby-lsp servidor LSP
{
"lspServers": {
"ruby": {
"command": "ruby-lsp",
"args": [],
"fileExtensions": {
".rb": "ruby",
".rbw": "ruby",
".rake": "ruby",
".gemspec": "ruby"
}
}
}
}
{
"lspServers": {
"ruby": {
"command": "ruby-lsp",
"args": [],
"fileExtensions": {
".rb": "ruby",
".rbw": "ruby",
".rake": "ruby",
".gemspec": "ruby"
}
}
}
}
Definição de servidor de exemplo: pyright servidor LSP para Python
{
"lspServers": {
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"fileExtensions": {
".py": "python",
".pyw": "python",
".pyi": "python"
}
}
}
}
{
"lspServers": {
"python": {
"command": "pyright-langserver",
"args": ["--stdio"],
"fileExtensions": {
".py": "python",
".pyw": "python",
".pyi": "python"
}
}
}
}
Gerenciando servidores de idioma com o /lsp comando
Você pode listar e gerenciar seus servidores LSP em uma sessão interativa da CLI usando o /lsp comando barra:
| Comando barra | Descrição |
|---|---|
/lsp ou /lsp show | Mostrar o status de todos os servidores LSP configurados. |
/lsp test SERVER-NAME | Teste se um servidor é iniciado corretamente. |
/lsp reload | Recarregue as configurações de LSP do disco. |
/lsp help | Mostrar informações de comando /lsp. |
Listando servidores LSP disponíveis
-
Em CLI do Copilot, confirme se o servidor LSP escolhido está disponível usando o
/lspcomando barra. Você verá uma saída semelhante a:● LSP Server Status: User-configured servers: • ruby: ruby-lsp (.rb, .rbw, .rake, .gemspec) • omnisharp: omnisharp (.cs) User config: /Users/username/.copilot/lsp-config.json
Confirmando que um servidor LSP está disponível
-
Depois de adicionar e configurar um servidor LSP, inicie (ou reinicie) CLI do Copilot.
-
Use o comando barra:
/lsp test SERVER-NAMEpara verificar se o servidor LSP está funcionando corretamente.CLI do Copilot tenta iniciar uma instância temporária e autônoma do servidor e relata se ela foi bem-sucedida ou se houve erros. Em seguida, ele elimina o processo de servidor temporário.