Quando você usa o GitHub Copilot junto com o Pylance no VS Code para desenvolvimento Python, pode ver sugestões duplicadas, conclusões incorretas ou lentidão na resposta do IntelliSense. Isso acontece porque ambas as extensões tentam fornecer conclusões de código inline e informações de verificação de tipos, e suas configurações padrão podem se sobrepor. Este artigo explica por que esses conflitos ocorrem e fornece etapas claras para resolvê-los, para que o Copilot e o Pylance funcionem juntos sem problemas.
Principais conclusões: corrigindo a sobreposição entre Copilot e Pylance
- VS Code settings.json > editor.inlineSuggest.enabled: Controla se as sugestões inline aparecem; defina como true para o Copilot, mas o Pylance pode substituí-lo.
- VS Code settings.json > editor.suggest.showMethods: Defina como false para reduzir entradas de conclusão duplicadas do Pylance quando o Copilot estiver ativo.
- VS Code settings.json > python.analysis.inlayHints.variableTypes: Desativar isso reduz a poluição visual e impede que o Pylance interfira nas sugestões do Copilot.
Por que Copilot e Pylance entram em conflito no VS Code
O GitHub Copilot e o Pylance são extensões poderosas, mas podem se atrapalhar devido à funcionalidade sobreposta. O Copilot gera sugestões de código com base no contexto usando um modelo de linguagem grande, enquanto o Pylance fornece verificação de tipos rápida, IntelliSense e dicas inline usando o servidor de linguagem Pyright.
O conflito surge em várias áreas:
Sobreposição de sugestões inline
Ambas as extensões podem acionar sugestões inline. O Copilot mostra texto fantasma para conclusões de código, e o Pylance também pode mostrar dicas inline para tipos de variáveis, tipos de retorno de função e nomes de parâmetros. Quando ambos estão ativos, a exibição pode piscar, mostrar texto duplicado ou atrasar.
Duplicação na lista de conclusões
Quando você digita um nome de variável ou função, a lista de conclusões pode conter entradas tanto do Copilot quanto do Pylance. Isso pode causar confusão e atrasar o processo de seleção. Em alguns casos, as entradas do Pylance substituem as sugestões do Copilot, tornando o Copilot menos útil.
Impacto no desempenho
Executar duas extensões que analisam código em tempo real pode aumentar o uso de CPU e memória. Em máquinas mais lentas, isso resulta em atrasos perceptíveis ao digitar ou alternar arquivos.
Etapas para resolver conflitos entre Copilot e Pylance
Siga estas etapas para configurar o VS Code para que o Copilot e o Pylance funcionem juntos sem conflito. As alterações são feitas no arquivo settings.json, que você pode acessar pela Paleta de Comandos.
- Abra o settings.json do VS Code
Pressione Ctrl+Shift+P para abrir a Paleta de Comandos. DigitePreferences: Open Settings (JSON)e selecione. Isso abre o arquivo settings.json onde você pode adicionar ou modificar chaves de configuração. - Desative as sugestões inline do Pylance para tipos de variáveis
Adicione esta linha dentro do objeto JSON:"python.analysis.inlayHints.variableTypes": false. Isso impede que o Pylance mostre dicas de tipo inline ao lado dos nomes de variáveis, o que pode se sobrepor ao texto fantasma do Copilot. Salve o arquivo. - Reduza entradas de conclusão duplicadas do Pylance
Adicione esta linha:"editor.suggest.showMethods": false. Isso oculta sugestões de métodos do Pylance na lista de conclusões, permitindo que o Copilot controle o fluxo de sugestões. Você também pode definir"editor.suggest.showFunctions": falsese necessário. Salve o arquivo. - Garanta que as sugestões inline do Copilot estejam habilitadas
Adicione esta linha:"editor.inlineSuggest.enabled": true. Este é o interruptor principal para sugestões inline. Se estiver false, o texto fantasma do Copilot não aparecerá. Salve o arquivo. - Ajuste o modo de verificação de tipos do Pylance para básico
Adicione esta linha:"python.analysis.typeCheckingMode": "basic". O padrão é"off". Definir como"basic"fornece verificação de tipos sem interferência agressiva nas conclusões. Se você precisar do modo estrito, defina como"strict", mas espere mais sobreposição nas conclusões. Salve o arquivo. - Reinicie o VS Code
Feche o VS Code completamente e reabra. Isso garante que todas as configurações entrem em vigor e que ambas as extensões sejam recarregadas com a nova configuração.
Após reiniciar, teste digitando uma função ou variável Python. O Copilot deve mostrar sugestões inline sem sobreposição do Pylance. A lista de conclusões deve mostrar menos entradas duplicadas.
Se o Copilot ainda tiver problemas após a correção principal
Em alguns casos, as configurações básicas acima não são suficientes. Os cenários a seguir descrevem problemas adicionais e suas soluções.
O Copilot não mostra nenhuma sugestão
Se o Copilot parar de mostrar sugestões inline após ajustar as configurações do Pylance, verifique se o Copilot está ativado para arquivos Python. Abra um arquivo .py, clique no ícone do Copilot na barra de status e certifique-se de que mostra Copilot: Ativado. Se estiver desativado, clique no ícone para ativá-lo. Verifique também se sua assinatura do Copilot está ativa e se você está conectado.
As dicas de tipo do Pylance ainda aparecem
Se você ainda vir dicas inline do Pylance após definir python.analysis.inlayHints.variableTypes como false, pode ser necessário desativar todas as dicas inline. Adicione estas linhas ao settings.json: "python.analysis.inlayHints.functionReturnTypes": false e "python.analysis.inlayHints.parameterNames": false. Isso remove completamente todas as dicas inline do Pylance.
A lista de conclusões ainda mostra duplicatas
Se a lista de conclusões ainda tiver entradas duplicadas, você pode desativar as conclusões do Pylance completamente. Adicione esta linha: "python.analysis.completeFunctionParens": false. Isso impede que o Pylance adicione parênteses às conclusões. Para filtragem mais agressiva, defina "editor.suggest.filterGraceful": false para remover correspondências difusas do Pylance.
O VS Code fica lento após as alterações
Se o desempenho ainda for ruim, desative o Copilot em arquivos grandes. Adicione esta linha: "github.copilot.editor.enableAutoCompletions": false e acione manualmente o Copilot com Ctrl+Enter quando necessário. Isso reduz o processamento em segundo plano. Você também pode definir "python.analysis.indexing": false para impedir que o Pylance indexe todo o espaço de trabalho, economizando memória.
Copilot vs Pylance: principais diferenças no VS Code
| Item | GitHub Copilot | Pylance |
|---|---|---|
| Função principal | Conclusão de código por IA baseada no contexto e no modelo de linguagem | IntelliSense rápido, verificação de tipos e servidor de linguagem para Python |
| Fonte das sugestões | Modelo OpenAI Codex treinado em código público | Análise estática Pyright do seu código e stubs de tipo |
| Texto fantasma inline | Aparece como texto acinzentado enquanto você digita | Mostra dicas inline para tipos de variáveis, tipos de retorno e nomes de parâmetros |
| Entradas na lista de conclusões | Aparecem como entradas do Copilot no widget de sugestões | Aparecem como entradas padrão do IntelliSense |
| Impacto no desempenho | Moderado; usa chamadas de rede para sugestões | Baixo a moderado; executa localmente e armazena em cache a análise |
| Resolução de conflitos | Desative sugestões inline ou ajuste a filtragem de conclusões | Desative dicas inline ou reduza o modo de verificação de tipos |
Agora você sabe como resolver conflitos entre o GitHub Copilot e o Pylance no VS Code. Comece ajustando as chaves do settings.json para dicas inline e filtragem de conclusões, e depois teste com um arquivo Python. Para problemas persistentes, desative as dicas inline do Pylance ou reduza as autoconclusões do Copilot em arquivos grandes. Como dica avançada, use a configuração editor.suggest.preview definida como true para visualizar as conclusões de ambas as extensões sem confirmá-las imediatamente.