GitHub Copilot no VS Code com Tabnine Instalado: Padrões de Coexistência
🔍 WiseChecker

GitHub Copilot no VS Code com Tabnine Instalado: Padrões de Coexistência

Executar GitHub Copilot e Tabnine simultaneamente no Visual Studio Code pode causar comportamentos inesperados, como sugestões duplicadas, preenchimentos automáticos conflitantes ou uma extensão sobrescrevendo a outra. Isso acontece porque ambas as ferramentas se conectam à mesma API de conclusão do editor e suas configurações padrão não incluem lógica de coordenação. Este artigo explica como as duas extensões interagem, como configurá-las para trabalhar juntas e quais padrões usar para obter os melhores resultados de ambas.

Principais Conclusões: Configurando GitHub Copilot e Tabnine no VS Code

  • VS Code settings.json > editor.inlineSuggest.enabled: Controla qual extensão fornece sugestões inline quando ambas estão ativas.
  • Comando Tabnine Config > Completion: Permite desabilitar as conclusões inline do Tabnine para que o Copilot seja o principal sugeridor.
  • Menu da barra de status do GitHub Copilot > Disable Inline Suggestions: Desativa as sugestões inline do Copilot para que o Tabnine cuide das conclusões sozinho.

ADVERTISEMENT

Como GitHub Copilot e Tabnine Interagem no VS Code

Tanto o GitHub Copilot quanto o Tabnine estendem o editor do VS Code fornecendo conclusões de código inline. Eles escutam os mesmos eventos do editor e enviam sugestões através da API InlineCompletionItemProvider. Quando ambos estão habilitados, o VS Code pode mostrar sugestões de ambas as extensões ao mesmo tempo, ou pode mostrar apenas o último provedor registrado, dependendo da versão e das configurações.

A causa raiz dos conflitos é que nenhuma das extensões foi projetada para coordenar com a outra. O Copilot usa um modelo de linguagem grande baseado em nuvem para conclusões sensíveis ao contexto. O Tabnine usa um modelo local ou em nuvem focado em padrões de código e repetição. Eles não compartilham uma fila ou sistema de prioridade. Como resultado, você pode ver duas janelas de sugestão sobrepostas, sugestões piscando ou conclusões que não correspondem ao seu estilo de codificação.

O próprio VS Code não mescla nativamente sugestões de vários provedores. O editor mostra a sugestão do último provedor que respondeu, o que pode variar conforme a latência e a carga do sistema. Isso significa que a sugestão que você vê pode vir de qualquer uma das extensões, e a outra sugestão é descartada silenciosamente ou aparece após um atraso.

Quando Ambas as Extensões Estão Instaladas, Mas Uma Está Desabilitada

Se você desabilitar uma extensão completamente pelo painel de Extensões, a outra funciona normalmente. Não há interferência residual. O problema de coexistência só aparece quando ambas estão ativas simultaneamente.

Impacto no Desempenho

Executar ambas as extensões pode aumentar o uso de CPU e memória, especialmente durante a indexação inicial do projeto. O Tabnine constrói um índice de modelo local na primeira execução. O Copilot envia o contexto de digitação para seu serviço em nuvem. Juntos, podem causar breves congelamentos do editor em arquivos grandes ou lentidão na inicialização.

Padrões para Configurar Ambas as Extensões para Trabalharem Juntas

Você tem três padrões práticos para executar ambas as extensões no VS Code. Escolha o padrão que corresponde ao seu fluxo de trabalho.

Padrão 1: Copilot como Sugeridor Principal, Tabnine para Chat e Revisão de Código

Use este padrão se você prefere as conclusões inline do Copilot, mas ainda quer o assistente de chat ou os recursos de revisão de código do Tabnine. Neste padrão, as conclusões inline do Tabnine são desabilitadas.

  1. Abra o painel de configuração do Tabnine
    Pressione Ctrl+Shift+P, digite Tabnine: Open Config e pressione Enter. A janela Tabnine Config abre em uma nova aba.
  2. Desabilite as conclusões inline do Tabnine
    Na janela Tabnine Config, localize a seção Completion. Coloque o interruptor de Enable Inline Completions em Off. O Tabnine não fornecerá mais sugestões de código no editor.
  3. Mantenha os recursos de chat e revisão de código do Tabnine ativos
    O painel de chat e os comandos de revisão de código do Tabnine permanecem disponíveis. Você pode usá-los junto com as conclusões do Copilot sem conflito.

Padrão 2: Tabnine como Sugeridor Principal, Copilot para Chat e Comandos

Use este padrão se você prefere as conclusões locais do Tabnine, mas ainda quer a interface de chat e os comandos de barra do Copilot. Neste padrão, as sugestões inline do Copilot são desabilitadas.

  1. Abra o menu da barra de status do Copilot
    Clique no ícone do Copilot na barra de status do VS Code, ou pressione Ctrl+Shift+I para abrir o painel de chat do Copilot.
  2. Desabilite as sugestões inline do Copilot
    No menu da barra de status, selecione Disable Inline Suggestions. O Copilot parará de mostrar conclusões inline no editor.
  3. Verifique se as conclusões do Tabnine estão ativas
    Comece a digitar em um arquivo de código. Você deve ver apenas sugestões do Tabnine. O chat do Copilot permanece acessível via Ctrl+Shift+I ou pelo ícone do Copilot.

Padrão 3: Deixar Ambos Rodarem com Prioridade de Provedor

Este padrão depende do mecanismo de prioridade de provedor do VS Code. Você não desabilita nenhuma extensão. Em vez disso, define um como provedor padrão no settings.json. O editor preferirá o provedor de maior prioridade quando ambos responderem.

  1. Abra o settings.json do VS Code
    Pressione Ctrl+Shift+P, digite Preferences: Open Settings (JSON) e pressione Enter.
  2. Defina a prioridade do provedor de sugestão inline
    Adicione a seguinte linha para dar maior prioridade ao Copilot: "editor.inlineSuggest.enabled": true. Em seguida, adicione: "github.copilot.enable": {"": true}. Para o Tabnine, certifique-se de que "tabnine.experimentalAutoImports": true esteja presente. Salve o arquivo.
  3. Teste o comportamento
    Digite algumas linhas de código. A sugestão que você vê deve vir do Copilot porque ele se registra depois do Tabnine e se torna o último provedor. Se você vir sugestões do Tabnine, inverta a ordem das configurações ou desabilite uma extensão conforme descrito no Padrão 1 ou 2.

ADVERTISEMENT

Problemas Comuns e Como Resolvê-los

Ambas as Extensões Mostram Sugestões Simultaneamente

Este é o problema mais comum. O editor exibe duas janelas de sugestão sobrepostas. Para corrigir, desabilite as conclusões inline de uma extensão usando o Padrão 1 ou 2 acima. Se o problema persistir, reinicie o VS Code após alterar as configurações.

As Sugestões do Copilot Não Estão Aparecendo

O Tabnine pode estar respondendo mais rápido e bloqueando o Copilot. Verifique se "github.copilot.enable": {"": true} está no seu settings.json. Verifique também se o Copilot está conectado clicando no ícone do Copilot na barra de status. Se mostrar um ícone de aviso, faça login novamente.

A Indexação do Tabnine Deixa o Copilot Lento

O Tabnine indexa seu projeto quando carrega pela primeira vez. Durante a indexação, o uso da CPU aumenta e o Copilot pode ficar lento. Aguarde a conclusão da indexação ou exclua pastas grandes nas configurações do Tabnine. Vá em Tabnine Config > Indexing e adicione pastas à lista de exclusão.

O VS Code Trava ou Congela

Executar duas extensões que consomem muita memória pode causar instabilidade. Tente desabilitar uma extensão temporariamente. Se o travamento parar, considere usar apenas uma extensão para conclusões inline. Você pode manter a outra apenas para chat ou recursos de revisão de código.

GitHub Copilot vs Tabnine: Principais Diferenças

Item GitHub Copilot Tabnine
Modelo de conclusão Modelo de linguagem grande baseado em nuvem (OpenAI Codex) Modelo de aprendizado profundo local ou em nuvem
Privacidade Contexto do código enviado aos servidores do GitHub Modo local mantém o código na sua máquina
Conclusões inline Habilitado por padrão Habilitado por padrão
Interface de chat Painel de chat integrado com comandos de barra Painel de chat disponível no plano Pro
Revisão de código Não disponível Disponível no Tabnine Enterprise
Auto-imports Não suportado Suportado com opção experimental
Preços Camada gratuita com limites; Pro a $10/mês; Business a $19/mês Camada gratuita com conclusões limitadas; Pro a $12/mês; Enterprise com preço personalizado

Ambas as extensões podem coexistir no VS Code se você configurar corretamente as configurações de conclusão inline. A abordagem recomendada é deixar uma lidar com sugestões inline e usar a outra para recursos secundários como chat ou revisão de código. Isso evita conflitos e mantém o editor responsivo.

ADVERTISEMENT