Você quer usar o GitHub Copilot para sugestões de código enquanto edita arquivos em um servidor remoto por meio da extensão SSH FS do VS Code. A extensão SSH FS monta diretórios remotos como um sistema de arquivos local, mas o servidor de linguagem do Copilot não consegue se conectar ao ambiente remoto por padrão. Este artigo explica como configurar o VS Code e a extensão SSH FS para que o Copilot possa fornecer conclusões inline e assistência por chat em arquivos remotos.
Principais Conclusões: Habilitando o Copilot em Código Remoto SSH FS
- Extensão Remote SSH do VS Code: A alternativa recomendada ao SSH FS para integração completa do Copilot com servidores de linguagem remotos.
- Configurações da extensão GitHub Copilot: Defina
github.copilot.advancedpara permitir conexões remotas ao usar SSH FS. - Configuração do espaço de trabalho SSH FS: Adicione
"remote.SSH.path"no settings.json para apontar o Copilot para o runtime Node.js remoto.
Entendendo a Lacuna de Compatibilidade entre SSH FS e Copilot
SSH FS é uma extensão do VS Code que monta o sistema de arquivos de um servidor remoto como um espaço de trabalho virtual. Ela não executa o servidor remoto do VS Code na máquina remota. Isso significa que o servidor de linguagem do Copilot, que analisa o contexto do código e gera sugestões, é executado apenas na sua máquina local e não consegue acessar o ambiente de runtime remoto. Quando você abre um arquivo via SSH FS, o Copilot vê uma cópia local do arquivo, mas não tem acesso às dependências, ferramentas de build e serviços de linguagem do projeto remoto.
A causa raiz é que o Copilot depende do Language Server Protocol para entender a estrutura do código. A extensão SSH FS não implementa uma ponte de servidor de linguagem remoto. Como resultado, o Copilot pode não mostrar sugestões, mostrar sugestões genéricas ou falhar ao ativar completamente. Para corrigir isso, você precisa mudar para uma configuração totalmente remota do VS Code ou configurar manualmente o Copilot para se conectar ao processo Node.js remoto.
Como o Copilot Detecta Espaços de Trabalho Remotos
O Copilot verifica o tipo de espaço de trabalho no VS Code. Ao usar SSH FS, o espaço de trabalho aparece como uma pasta local. A lógica interna do Copilot trata isso como um espaço de trabalho local e tenta iniciar o servidor de linguagem localmente. Como as dependências remotas estão ausentes, o servidor de linguagem não consegue analisar o código corretamente e não retorna conclusões.
Passos para Configurar o GitHub Copilot para Espaços de Trabalho SSH FS
- Instale as extensões necessárias
Abra o VS Code e instale a extensão GitHub Copilot da marketplace. Instale também a extensão SSH FS, se ainda não o fez. Reinicie o VS Code após a instalação. - Abra seu espaço de trabalho SSH FS
Use a extensão SSH FS para conectar-se ao seu servidor remoto. Navegue até a visualização SSH FS na barra de atividades, clique no ícone de adição e insira seus detalhes de conexão SSH. Selecione a pasta remota com a qual deseja trabalhar. - Habilite o Copilot para espaços de trabalho remotos
Abra as configurações do VS Code pressionando Ctrl + , no Windows ou Cmd + , no Mac. Pesquise porgithub.copilot.advanced. Defina a opçãoGitHub Copilot: AdvancedcomoAllow. Isso informa ao Copilot para tratar espaços de trabalho SSH FS como remotos e iniciar o servidor de linguagem adequadamente. - Configure o caminho do Node.js remoto
Na mesma janela de configurações, pesquise porremote.SSH.path. Insira o caminho completo para o executável Node.js no seu servidor remoto, por exemplo/usr/bin/node. Este passo é necessário apenas se o servidor remoto não tiver Node.js no PATH padrão. O Copilot usa Node.js para executar o servidor de linguagem. - Reinicie o servidor de linguagem do Copilot
Pressione Ctrl + Shift + P para abrir a paleta de comandos. DigiteDeveloper: Reload Windowe pressione Enter. Isso reinicia o VS Code e aplica todas as configurações. Abra um arquivo de código no espaço de trabalho SSH FS. Você deve ver as sugestões do Copilot aparecerem enquanto digita.
Método Alternativo: Use o Remote SSH do VS Code
Se a configuração acima não funcionar, a solução mais confiável é mudar do SSH FS para a extensão oficial Remote SSH do VS Code. Esta extensão executa o servidor completo do VS Code na máquina remota, incluindo o servidor de linguagem do Copilot. Para usá-la, instale a extensão Remote SSH, clique no indicador remoto azul no canto inferior esquerdo e selecione Connect to Host. Insira seus detalhes SSH. O VS Code recarrega com um contexto remoto e o Copilot funciona nativamente.
Copilot Ainda Não Funciona em Espaços de Trabalho SSH FS
Copilot não mostra nenhuma sugestão
Se o Copilot não aparecer após a configuração, verifique o ícone de status do Copilot no canto inferior direito do VS Code. Um círculo com uma linha cortada significa que o Copilot está desabilitado. Clique no ícone e selecione Enable Copilot. Verifique também se sua conta GitHub está conectada e possui uma assinatura ativa do Copilot.
Copilot sugere código local em vez de código do projeto remoto
Isso acontece quando o Copilot não consegue acessar o contexto do projeto remoto. Abra o painel de saída do VS Code pressionando Ctrl + Shift + U. No menu suspenso, selecione GitHub Copilot. Procure por erros como ENOENT ou cannot find module. Eles indicam que o caminho do Node.js remoto está incorreto. Atualize o caminho nas configurações e recarregue a janela.
O chat do Copilot não funciona no espaço de trabalho SSH FS
O Copilot Chat requer o mesmo servidor de linguagem remoto que as conclusões. Se você configurou a opção avançada mas o chat ainda falha, certifique-se de ter a extensão GitHub Copilot Chat instalada. Em seguida, abra a paleta de comandos, digite Copilot: Open Chat e verifique se o painel de chat carrega. Se mostrar um erro, mude para o método Remote SSH descrito acima.
SSH FS vs Remote SSH do VS Code para Copilot: Principais Diferenças
| Item | SSH FS | Remote SSH do VS Code |
|---|---|---|
| Descrição | Monta o sistema de arquivos remoto como um espaço de trabalho local | Executa o servidor completo do VS Code na máquina remota |
| Servidor de linguagem do Copilot | Executa localmente, pode faltar contexto remoto | Executa na máquina remota com contexto completo do projeto |
| Esforço de configuração | Requer configurações manuais para o caminho do Node.js remoto | Funciona imediatamente após a conexão |
| Desempenho | Mais rápido para edições simples de arquivos | Conexão inicial mais lenta, mas mais suave para projetos complexos |
| Melhor para | Edições rápidas em alguns arquivos | Desenvolvimento completo em bases de código remotas |
Se você precisa do Copilot para edições ocasionais de arquivos em um servidor remoto, o método SSH FS com configuração manual pode funcionar. Para desenvolvimento diário com múltiplos arquivos e dependências, use o Remote SSH do VS Code.
Agora você pode configurar o GitHub Copilot em espaços de trabalho SSH FS habilitando a configuração remota avançada e especificando o caminho do Node.js remoto. Para uma experiência mais confiável, considere mudar para a extensão Remote SSH do VS Code, que oferece suporte completo ao servidor de linguagem. Como dica avançada, você pode definir a configuração github.copilot.advanced no nível do espaço de trabalho em .vscode/settings.json para que cada projeto SSH FS use sua própria configuração.