Você está escrevendo uma função no Visual Studio Code ou outra IDE compatível, e o GitHub Copilot de repente para de oferecer sugestões inline no meio do caminho. O texto fantasma desaparece e pressionar Tab ou Enter não faz nada. Essa interrupção pode quebrar seu fluxo e atrasar o desenvolvimento. A causa geralmente é uma combinação de limites de contexto, restrições de token ou configurações incorretas do editor. Este artigo explica os motivos técnicos por trás desse comportamento e fornece etapas específicas para restaurar as sugestões do Copilot.
Principais conclusões: Restaurando sugestões do GitHub Copilot no meio de uma função
- Limite da janela de contexto do Copilot de 4096 tokens: Exceder esse limite faz com que o Copilot pare de sugerir até que você reduza o código visível ou abra um novo arquivo.
- Alternância Copilot: Desabilitar Sugestões Inline nas configurações do VS Code: Desligar e ligar novamente redefine o mecanismo de sugestão sem reiniciar o editor.
- Ícone da barra de status do GitHub Copilot no VS Code: Clique no ícone do Copilot no canto inferior direito para verificar o status da conexão e ativar ou desativar sugestões por arquivo.
Por que o Copilot para de sugerir no meio de uma função
O GitHub Copilot usa um modelo de aprendizado de máquina que possui uma janela de contexto fixa. A janela de contexto é a quantidade de código que o modelo pode “ver” de uma vez ao gerar uma sugestão. Para o Copilot, essa janela é de aproximadamente 4096 tokens. Um token é aproximadamente uma palavra ou elemento de código. Quando o total de tokens no arquivo atual mais a função que você está escrevendo excede esse limite, o Copilot não consegue processar todo o contexto e para de fornecer sugestões.
Outro fator é o mecanismo de sequência de parada. O Copilot procura pontos de interrupção naturais no seu código, como uma chave de fechamento, um ponto e vírgula ou uma linha em branco. Se sua função contiver um bloco aninhado complexo ou uma string literal longa, o Copilot pode interpretar uma estrutura parcial como um ponto de parada e parar de gerar sugestões.
Além disso, o Copilot depende do protocolo de servidor de linguagem (LSP) para se comunicar com seu editor. Se o LSP travar ou ficar sem resposta, o Copilot para de enviar sugestões. Isso pode acontecer quando o editor fica sem memória ou quando um plugin entra em conflito com o Copilot.
Limite de tokens em detalhes
O limite de 4096 tokens inclui todo o conteúdo do arquivo, não apenas a função que você está editando. Um arquivo com muitas importações, comentários longos ou estruturas de dados grandes usa tokens rapidamente. Quando você atinge o limite, o Copilot para de sugerir completamente ou fornece conclusões muito curtas e irrelevantes. Você pode verificar isso abrindo um novo arquivo e colando apenas o corpo da função. Se o Copilot sugerir normalmente no novo arquivo, o arquivo original excedeu o limite de tokens.
Sequências de parada e heurísticas
O Copilot usa heurísticas para decidir quando parar de sugerir. Sequências de parada comuns incluem:
- Chaves de fechamento
}no mesmo nível de indentação do início da função - Parênteses ou colchetes não correspondentes
- Uma linha com apenas espaços em branco após uma declaração completa
- Um comentário que muda abruptamente de assunto
Se sua função contiver algum desses padrões no meio, o Copilot pode assumir incorretamente que a função está completa e parar de sugerir.
Etapas para restaurar as sugestões do Copilot quando elas param no meio de uma função
- Verifique o ícone de status do Copilot
No VS Code, olhe no canto inferior direito da janela para o ícone do Copilot. Ele mostra uma marca de seleção quando ativo, um círculo girando quando carregando ou um círculo riscado quando desabilitado. Se estiver riscado, clique no ícone e selecione Habilitar Completions. - Desligue e ligue as sugestões inline
Abra a Paleta de Comandos com Ctrl+Shift+P. Digite Copilot: Desabilitar Sugestões Inline e pressione Enter. Em seguida, digite imediatamente Copilot: Habilitar Sugestões Inline e pressione Enter. Isso redefine o mecanismo de sugestão sem reiniciar o VS Code. - Reduza o código visível no arquivo atual
Recolha todas as definições de função, declarações de classe e blocos de importação que não são necessários para a função atual. Use Ctrl+K Ctrl+0 para recolher todas as regiões. Isso reduz a contagem de tokens e pode trazer o Copilot de volta para dentro de sua janela de contexto. - Divida a função em funções auxiliares menores
Se a função tiver mais de 50 linhas, refatore-a em várias funções menores. O Copilot funciona melhor com funções curtas e de propósito único. Crie uma função auxiliar para um bloco distinto de lógica e chame-a da função principal. - Reinicie o servidor de linguagem do Copilot
Abra a Paleta de Comandos com Ctrl+Shift+P. Digite Desenvolvedor: Recarregar Janela e pressione Enter. Isso reinicia todas as extensões, incluindo o Copilot. Alternativamente, você pode executar Copilot: Reiniciar Copilot se disponível na sua versão. - Verifique extensões conflitantes
Desabilite outras extensões de conclusão de código, como Tabnine, IntelliCode ou Kite. Vá para a visualização de Extensões com Ctrl+Shift+X, encontre cada extensão e clique em Desabilitar. Recarregue a janela e teste as sugestões do Copilot. - Atualize o GitHub Copilot para a versão mais recente
No VS Code, abra a visualização de Extensões com Ctrl+Shift+X. Encontre o GitHub Copilot, clique no ícone de engrenagem e selecione Atualizar se disponível. Versões desatualizadas podem ter bugs que causam quedas nas sugestões. - Limpe o cache do Copilot
Feche o VS Code. Navegue até a pasta de cache do Copilot: no Windows,%APPDATA%\Code\CachedData; no macOS,~/Library/Application Support/Code/CachedData. Exclua o conteúdo desta pasta. Reinicie o VS Code e abra seu arquivo novamente.
Se o Copilot ainda tiver problemas após a correção principal
O Copilot sugere apenas uma linha de cada vez
Isso geralmente indica um problema de limite de tokens. O modelo só pode gerar uma conclusão curta porque o contexto é muito grande. Siga as etapas acima para reduzir o código visível. Além disso, verifique se você tem uma string literal muito longa ou um objeto JSON grande no arquivo. Mova esses dados para um arquivo separado e importe-os.
O Copilot sugere código irrelevante
Quando o Copilot fica sem contexto, ele pode sugerir conclusões baseadas em arquivos ou padrões não relacionados. Isso acontece porque o modelo recorre aos dados de treinamento em vez do contexto do arquivo atual. Para corrigir isso, feche todas as abas exceto a que você está editando. O Copilot usa todos os arquivos abertos como contexto. Menos arquivos abertos significam um contexto mais limpo.
O Copilot para de sugerir após um pressionamento de tecla específico
Se o Copilot parar depois que você digitar um determinado caractere ou palavra-chave, o problema provavelmente é uma sequência de parada. Por exemplo, digitar uma chave de fechamento na indentação errada pode acionar uma parada. Verifique sua indentação e certifique-se de que as chaves estejam no nível correto. Se a função usar um loop ou condicional, verifique se todos os colchetes estão devidamente correspondidos.
GitHub Copilot Free vs Copilot Pro: Principais diferenças
| Item | GitHub Copilot Free | GitHub Copilot Pro |
|---|---|---|
| Preço mensal | $0 | $10 por usuário por mês |
| Janela de contexto | 4096 tokens | 4096 tokens |
| Sugestões por solicitação | 1 | Até 10 alternativas |
| Acesso ao Copilot Chat | Limitado (2000 mensagens por mês) | Ilimitado |
| IDEs compatíveis | VS Code, JetBrains, Neovim | Todas as IDEs compatíveis com Copilot |
Ambos os planos têm o mesmo limite de tokens, então o problema de parada no meio da função afeta usuários Free e Pro igualmente. A principal vantagem do Pro é a capacidade de percorrer várias sugestões com Alt+] e Alt+[ e usar o Copilot Chat sem limites de mensagens.
Agora você pode identificar por que o Copilot para de sugerir no meio de uma função e aplicar a correção adequada. Comece verificando o ícone de status e alternando as sugestões inline. Se o problema persistir, reduza o código visível ou refatore funções longas. Para problemas persistentes, reinicie o servidor de linguagem do Copilot ou limpe o cache. Como dica avançada, você pode definir editor.inlineSuggest.enabled como false e true no seu settings.json do VS Code para forçar uma reinicialização completa do pipeline de sugestão inline sem usar a Paleta de Comandos.