O GitHub Copilot no VS Code pode travar ou ficar sem resposta ao abrir um workspace com centenas ou milhares de arquivos. Isso acontece porque o Copilot escaneia toda a pasta aberta para construir seu contexto de sugestões de código, e workspaces grandes consomem memória e CPU excessivos. Este artigo explica por que o Copilot falha em projetos grandes e fornece três correções direcionadas para restaurar a estabilidade.
Principais conclusões: corrigindo travamentos do GitHub Copilot em grandes workspaces do VS Code
- VS Code settings.json > git.ignoredRepos: Exclua grandes repositórios Git da varredura do Copilot para reduzir a carga de memória.
- VS Code settings.json > github.copilot.enable: Desabilite o Copilot para tipos de arquivo ou linguagens específicos onde você não precisa de sugestões.
- VS Code > File > Add Folder to Workspace: Em vez de abrir a pasta raiz inteira, adicione apenas as subpastas nas quais você trabalha ativamente.
Por que o Copilot trava em workspaces grandes
O GitHub Copilot usa um modelo de linguagem que analisa o arquivo atual e arquivos próximos para gerar sugestões. Ao abrir um workspace grande, o Copilot indexa todos os arquivos na árvore de pastas. Para projetos com mais de 500 arquivos, essa indexação pode consumir mais de 1 GB de RAM e fazer com que o processo host de extensão do VS Code exceda seu limite de memória. O resultado é um editor congelado, uma trava ou uma mensagem de erro que diz “Extension host terminated unexpectedly.”
A causa raiz não é um bug no Copilot em si. É uma restrição de recursos. O host de extensão no VS Code tem um limite de memória padrão de 512 MB em sistemas de 32 bits e 1 GB em sistemas de 64 bits. Um workspace grande com muitas dependências, arquivos gerados ou pastas node_modules facilmente ultrapassa esse limite. Quando o host de extensão trava, o Copilot para de funcionar até que você recarregue a janela.
Como o tamanho do workspace afeta o desempenho do Copilot
O Copilot não precisa escanear todos os arquivos para fornecer sugestões úteis. Ele precisa apenas do arquivo atual mais alguns arquivos relacionados. No entanto, a versão atual do Copilot no VS Code não limita seu escopo de varredura por padrão. Ele lê toda a raiz do workspace, incluindo pastas ocultas como .git, node_modules e saída de build. Cada arquivo aumenta o uso de memória linearmente. Um workspace com 10.000 arquivos pode fazer o Copilot usar 2 GB ou mais de RAM, levando a uma trava em segundos após abrir o projeto.
Passos para impedir que o Copilot trave em workspaces grandes
Aplique estas correções na ordem mostrada. Cada correção reduz a quantidade de dados que o Copilot precisa processar. Comece com a correção mais eficaz: excluir pastas grandes da indexação do Git.
Método 1: Excluir repositórios grandes com git.ignoredRepos
- Abra o settings.json do VS Code
Pressione Ctrl+Shift+P para abrir a Paleta de Comandos. Digite Preferences: Open Settings (JSON) e pressione Enter. - Adicione a configuração git.ignoredRepos
Insira esta linha dentro do objeto JSON:"git.ignoredRepos": ["C:/caminho/para/repo-grande", "D:/outro-repo"]
Substitua os caminhos pelos caminhos absolutos dos grandes repositórios Git em seu workspace. Use barras normais no Windows. - Salve e recarregue a janela
Pressione Ctrl+S para salvar o settings.json. Em seguida, pressione Ctrl+Shift+P, digite Developer: Reload Window e pressione Enter.
Essa configuração diz ao Copilot para pular a indexação desses repositórios Git completamente. É a maneira mais rápida de reduzir o uso de memória, pois o Copilot para de escanear as maiores pastas do seu workspace.
Método 2: Desabilitar o Copilot para tipos de arquivo específicos
- Abra o settings.json do VS Code
Pressione Ctrl+Shift+P e execute Preferences: Open Settings (JSON). - Adicione a configuração github.copilot.enable
Insira este bloco dentro do objeto JSON:"github.copilot.enable": {
"": true,
"plaintext": false,
"yaml": false,
"markdown": false
}
Defina o valor comofalsepara qualquer linguagem onde você não precise de sugestões do Copilot. O asterisco mantém o Copilot habilitado para todas as outras linguagens. - Salve e recarregue a janela
Pressione Ctrl+S, depois Ctrl+Shift+P e execute Developer: Reload Window.
Desabilitar o Copilot para documentação, configuração ou arquivos gerados impede que a extensão carregue esses arquivos na memória. Isso reduz a contagem total de arquivos que o Copilot processa.
Método 3: Abrir apenas subpastas em vez da raiz
- Feche o workspace atual
Pressione Ctrl+Shift+W para fechar o workspace. Não salve o arquivo de workspace se for solicitado. - Adicione subpastas individuais a um novo workspace
Vá em File > Add Folder to Workspace. Selecione apenas as subpastas necessárias para sua tarefa atual. Por exemplo, em vez de abrir a pasta src inteira, abra apenas src/components e src/utils. - Salve o arquivo de workspace
Vá em File > Save Workspace As. Dê um nome como frontend.code-workspace. Isso permite reabrir o mesmo subconjunto de pastas depois sem repetir a seleção.
Este método é o mais manual, mas oferece controle total sobre quais arquivos o Copilot pode ver. É a melhor opção quando você trabalha apenas em uma parte de um monorepo.
Se o Copilot ainda tiver problemas após a correção principal
Os três métodos acima resolvem travamentos na maioria dos workspaces grandes. No entanto, alguns casos extremos exigem etapas adicionais.
Copilot não gera sugestões após excluir pastas
Se você excluir muitas pastas, o Copilot pode ficar sem contexto para trabalhar. Abra o ícone de status do Copilot na barra de status do VS Code. Ele mostra se o Copilot está ativo. Se estiver esmaecido, você desabilitou o Copilot para o tipo de arquivo atual ou excluiu a pasta que contém seu arquivo ativo. Reabilite o Copilot para essa linguagem no settings.json definindo seu valor como true.
Host de extensão ainda trava após aplicar todas as correções
Se o host de extensão continuar travando, o workspace pode conter um único arquivo extremamente grande, como um dump de banco de dados ou um bundle JavaScript minificado. Abra o workspace e procure arquivos com mais de 10 MB. Exclua ou mova esses arquivos para fora da pasta do workspace. Em seguida, recarregue a janela.
Copilot trava apenas ao abrir certos tipos de arquivo
Alguns tipos de arquivo, como JSON com muitos objetos aninhados ou YAML com milhares de linhas, fazem o Copilot consumir mais memória. Abra o settings.json e adicione essas extensões de arquivo específicas à lista desabilitada em github.copilot.enable. Por exemplo, adicione "json": false se você trabalha com arquivos de configuração JSON grandes.
Comportamento de travamento do Copilot: workspace grande vs workspace pequeno
| Item | Workspace grande (500+ arquivos) | Workspace pequeno (menos de 100 arquivos) |
|---|---|---|
| Uso de memória pelo Copilot | 800 MB a 2 GB | 100 MB a 300 MB |
| Frequência de travamento do host de extensão | Frequente, em até 2 minutos após abrir | Raro |
| Efeito do git.ignoredRepos | Reduz a memória em 40-60% | Efeito mínimo |
| Efeito de desabilitar tipos de arquivo | Reduz a contagem de arquivos em 30-50% | Efeito mínimo |
| Ordem de correção recomendada | git.ignoredRepos, depois desabilitar tipos de arquivo, depois subpastas | Nenhuma necessária |
O GitHub Copilot no VS Code é estável para projetos pequenos e médios, mas requer configuração explícita para workspaces grandes. Use git.ignoredRepos para excluir repositórios inteiros, desabilite o Copilot para tipos de arquivo que você não precisa e abra apenas as subpastas que você edita ativamente. Após aplicar essas alterações, o Copilot gerará sugestões sem travar, mesmo em monorepos com milhares de arquivos. Para manutenção contínua, revise periodicamente seu settings.json para garantir que os caminhos excluídos ainda correspondam à estrutura atual do seu projeto.