Como Impedir que as Sugestões do GitHub Copilot se Sobreponham ao IntelliSense
🔍 WiseChecker

Como Impedir que as Sugestões do GitHub Copilot se Sobreponham ao IntelliSense

Quando você escreve código no Visual Studio ou VS Code, tanto o GitHub Copilot quanto o IntelliSense tentam ajudar ao mesmo tempo. Isso causa sobreposição de sugestões, onde as previsões inline do Copilot cobrem ou competem com as listas de conclusão do IntelliSense. O resultado é um editor confuso, com dois conjuntos de sugestões e dificuldade para escolher a desejada. Este artigo explica por que a sobreposição ocorre e fornece configurações específicas para separar ou desabilitar um dos dois recursos.

Principais Conclusões: Evitar Sobreposição entre Copilot e IntelliSense

  • VS Code settings.json > editor.inlineSuggest.enabled: Defina como false para desativar as sugestões inline do Copilot e usar apenas a lista de conclusão do IntelliSense.
  • VS Code settings.json > github.copilot.enable: Defina como false por linguagem para desabilitar completamente o Copilot para tipos de arquivo específicos.
  • Visual Studio > Tools > Options > Text Editor > C# > IntelliSense: Desabilite os caracteres de confirmação de conclusão para evitar que o IntelliSense insira automaticamente ao pressionar Tab para o Copilot.

ADVERTISEMENT

Por que Copilot e IntelliSense se Sobrepoem no Editor

O GitHub Copilot e o IntelliSense são dois mecanismos de sugestão separados que são executados simultaneamente na maioria dos editores de código modernos. O IntelliSense fornece uma lista suspensa de conclusões baseadas no contexto do código, tipos e namespaces. O Copilot fornece texto fantasma inline que prevê linhas inteiras ou blocos de código com base na correspondência de padrões de milhões de repositórios públicos. Quando ambos os recursos estão ativos, o editor exibe o pop-up do IntelliSense e o texto fantasma do Copilot simultaneamente. Pressionar Tab ou Enter pode acionar qualquer um dos sistemas, dependendo de qual está em foco. Essa sobreposição cria confusão, pois você pode aceitar uma sugestão do Copilot quando pretendia escolher um item do IntelliSense, ou vice-versa.

A causa raiz é que ambos os recursos usam os mesmos atalhos de teclado por padrão. Tab e Enter são as teclas de confirmação principais tanto para as conclusões do IntelliSense quanto para as sugestões inline do Copilot. Quando a lista do IntelliSense está aberta, Tab insere o item selecionado do IntelliSense. Quando a lista está fechada e o texto fantasma do Copilot está visível, Tab aceita a sugestão do Copilot. Esse vínculo duplo leva a aceitações acidentais e um conflito de decisão a cada pressionamento de Tab. Além disso, alguns editores mostram o texto fantasma do Copilot diretamente sobre o pop-up do IntelliSense, tornando a lista ilegível.

Passos para Separar Copilot e IntelliSense no VS Code

No VS Code, você pode controlar se as sugestões inline do Copilot aparecem e se os pop-ups de conclusão do IntelliSense são exibidos. O método mais eficaz é desabilitar as sugestões inline do Copilot e confiar apenas no IntelliSense, ou desabilitar o IntelliSense para linguagens específicas e usar apenas o Copilot. Abaixo estão as configurações exatas a serem alteradas.

  1. Abra as Configurações do VS Code
    Pressione Ctrl + , para abrir a aba de Configurações. Alternativamente, vá em File > Preferences > Settings.
  2. Pesquise por Inline Suggestions
    Na barra de pesquisa no topo das Configurações, digite inline suggestions. Isso filtra para a configuração editor.inlineSuggest.enabled.
  3. Desabilite Inline Suggestions
    Desmarque a caixa de seleção para Editor: Inline Suggestions Enabled. Isso desativa todo o texto fantasma inline, incluindo o Copilot. As conclusões do IntelliSense ainda aparecem como uma lista suspensa.
  4. Verifique se o Copilot Ainda Está Ativo
    Abra um arquivo de código. Você não deve mais ver texto fantasma cinza. Pressione Ctrl + Espaço para acionar manualmente o IntelliSense. As sugestões do Copilot ainda estão disponíveis através do painel do Copilot no lado direito do editor.

Se você quiser manter as sugestões inline, mas desabilitar o IntelliSense para certas linguagens, use a configuração editor.quickSuggestions. Defina como off para linguagens onde você prefere apenas sugestões do Copilot.

Desabilitar o Copilot para Linguagens Específicas no VS Code

  1. Abra o settings.json
    Pressione Ctrl + Shift + P, digite settings.json e selecione Preferences: Open Settings (JSON).
  2. Adicione a Substituição de Linguagem
    Insira o seguinte bloco dentro do objeto JSON:
    "github.copilot.enable": {
        "python": false,
        "javascript": false,
        "typescript": true
    }

    Substitua as chaves de linguagem pelas que você usa. Definir uma linguagem como false desabilita o Copilot para esse tipo de arquivo, enquanto o IntelliSense continua funcionando.

  3. Salve o Arquivo
    Pressione Ctrl + S. O Copilot para imediatamente de mostrar sugestões para as linguagens desabilitadas.

ADVERTISEMENT

Passos para Separar Copilot e IntelliSense no Visual Studio

No Visual Studio, a sobreposição geralmente é causada pela lista de conclusão do IntelliSense aparecer enquanto as previsões inline do Copilot estão visíveis. A correção envolve alterar como o IntelliSense lida com a tecla Tab e o comportamento de confirmação de conclusão.

  1. Abra as Opções do Visual Studio
    Vá em Tools > Options no menu principal.
  2. Navegue até as Configurações do Editor de Texto
    Na caixa de diálogo Options, expanda Text Editor e depois expanda a linguagem com a qual você trabalha, por exemplo C#. Clique em IntelliSense.
  3. Desabilite os Caracteres de Confirmação de Conclusão
    Desmarque Show completion list after a character is typed. Isso impede que o IntelliSense abra automaticamente. Pressione Ctrl + Espaço para abrir a lista manualmente quando necessário. As sugestões inline do Copilot permanecem visíveis e não entram em conflito.
  4. Altere o Comportamento da Tecla Tab
    Na mesma seção IntelliSense, defina Tab behavior como None. Isso impede que o IntelliSense insira uma conclusão ao pressionar Tab. O Copilot então usa Tab para aceitar suas próprias sugestões sem interferência.
  5. Aplique e Teste
    Clique em OK. Abra um arquivo de código e digite alguns caracteres. Você deve ver apenas o texto fantasma do Copilot. Pressione Tab para aceitar a sugestão do Copilot. Pressione Ctrl + Espaço para abrir o IntelliSense manualmente quando necessário.

Se Copilot e IntelliSense Ainda se Sobrepoem Após Alterações nas Configurações

Texto Fantasma do Copilot Cobre o Pop-up do IntelliSense

Em alguns temas ou versões do editor, o texto fantasma do Copilot aparece diretamente sobre o pop-up do IntelliSense, tornando a lista ilegível. Para corrigir isso, altere o tema de cores do VS Code ou aumente o z-index do pop-up do IntelliSense. No VS Code, vá em Settings, pesquise por editor.suggest.preview e defina como false. Isso oculta a visualização que às vezes se sobrepõe ao texto fantasma. Alternativamente, mude para um tema com maior contraste para widgets de sugestão, como o tema padrão Dark+.

Ambos os Recursos Aceitam na Mesma Tecla

Se você pressionar Tab e às vezes obtiver uma conclusão do IntelliSense e às vezes uma sugestão do Copilot, o atalho de teclado para Tab é compartilhado. No VS Code, você pode alterar o atalho de aceitação do Copilot. Vá em File > Preferences > Keyboard Shortcuts, pesquise por github.copilot.accept e altere para uma combinação de teclas diferente, por exemplo Ctrl + Enter. O IntelliSense ainda usa Tab. No Visual Studio, vá em Tools > Options > Environment > Keyboard, pesquise por Edit.CompleteWord e altere seu atalho para algo diferente de Tab.

Copilot Para de Funcionar Após Desabilitar Inline Suggestions

Desabilitar editor.inlineSuggest.enabled no VS Code desativa todo o texto fantasma inline, incluindo o Copilot. As sugestões do Copilot ainda estão disponíveis através do painel do Copilot na barra lateral direita. Para recuperar as sugestões inline do Copilot, reative a configuração. Se você quiser manter as sugestões inline desativadas, mas ainda ver as sugestões do Copilot em um painel separado, use a extensão Copilot Chat em vez do recurso inline.

Item Método no VS Code Método no Visual Studio
Desabilitar sugestões inline do Copilot editor.inlineSuggest.enabled = false Não disponível diretamente; use Tools > Options > IntelliSense para gerenciar o comportamento da tecla Tab
Desabilitar pop-up automático do IntelliSense editor.quickSuggestions definido como off por linguagem Desmarcar Show completion list after a character is typed
Alterar comportamento da tecla Tab Remapear atalho de teclado para github.copilot.accept Definir Tab behavior como None nas opções do IntelliSense
Usar Copilot sem texto fantasma inline Abrir painel do Copilot na barra de atividades Usar janela do Copilot Chat

Agora você pode controlar exatamente quando as sugestões inline do Copilot e as conclusões do IntelliSense aparecem. Comece desabilitando o recurso que você usa menos. Para a maioria dos desenvolvedores, desligar as sugestões inline do Copilot e confiar no IntelliSense mais o acesso manual ao painel do Copilot proporciona a experiência de edição mais limpa. Se você prefere o Copilot, desabilite o pop-up automático do IntelliSense e use Ctrl + Espaço para chamar as conclusões apenas quando necessário. Teste ambas as configurações por um dia inteiro antes de decidir qual se encaixa no seu fluxo de trabalho.

ADVERTISEMENT