Configurar o C/C++ Include Cleanup no Visual Studio
A partir do 17.8 Versão Prévia 1, o Visual Studio pode limpar os #include
s para melhorar a qualidade do código C e C++ das seguintes maneiras:
- Oferece a adição de arquivos de cabeçalho para código que é compilado apenas porque um arquivo de cabeçalho necessário foi incluído indiretamente por outro arquivo de cabeçalho.
- Oferece a remoção de arquivos de cabeçalho não utilizados, melhorando os tempos de compilação.
Este artigo descreve como configurar o Include Cleanup no Visual Studio. Para obter mais informações sobre o Include Cleanup, confira Visão geral do C/C++ Include Cleanup.
Ativar o Include Cleanup
O recurso Include Cleanup está ativado por padrão. Se ele não estiver ativo, você poderá ativá-lo em Ferramenta>Opções>Editor de Texto>C/C++>Limpeza de Código e selecionar Habilitar #include cleanup.
Em seguida, use as listas suspensas para configurar como você deseja ser notificado sobre oportunidades de adicionar cabeçalhos indiretos ou remover cabeçalhos não utilizados:
A caixa de seleção Habilitar #include cleanup está marcada. As listas suspensas para o Nível de sugestão de remoção de inclusões não utilizadas e o Nível de sugestão de adição de inclusões ausentes são mostradas. O conteúdo da lista suspensa é mostrado, que inclui: **Somente refatoração**, **Sugestão**, **Aviso** e **Erro**. O menu suspenso do **Nível de sugestão de remoção de inclusões não utilizadas** oferece as mesmas opções, mas também adiciona o esmaecido.
Os significados das opções de nível de sugestão são:
Somente refatoração: o Include Cleanup oferece ações que você pode executar através do menu de ação rápida, quando você passa o ponteiro do mouse sobre um #include
ou coloca o cursor sobre a linha #include
e pressione Ctrl+ponto:
Ao passar o cursor sobre # include iostream, uma lâmpada aparece com o texto indicando que # include iostream não foi utilizado neste arquivo."
Sugestão, Aviso, Erro: o Include Cleanup oferece ações que podem ser executadas por meio de sugestões, avisos ou erros na janela Lista de Erros. Você determina qual. Na captura de tela a seguir da Lista de Erros, a opção Include Cleanup foi configurada para mostrar os cabeçalhos não utilizados com um aviso. Verifique se Compilar + Intellisense está selecionada no filtro do menu suspenso para que você possa ver a saída do Include Cleanup:
O filtro do menu suspenso está definido como Compilar + IntelliSense. Um aviso está visível: VCIC002 – #include < iostream > não foi utilizado neste arquivo."
Esmaecido
O Include Cleanup mostra os cabeçalhos não utilizados escurecendo a linha do arquivo de cabeçalho não utilizado no editor de códigos. Passe o cursor sobre o #include
esmaecido para abrir o menu de ação rápida e escolha Mostrar possíveis correções ou clique no menu suspenso da lâmpada para ver as ações relacionadas ao arquivo não utilizado.
A linha para #include < iostream > está esmaecida porque a linha de código que usa o iostream foi comentada. Essa linha de código é // std::cout << "charSize = " << charSize; O menu de ação rápida também está visível para essa linha. Ela indica que o #include < iostream > não foi utilizado neste arquivo e tem um link para Mostrar possíveis correções.
Configurar o Include Cleanup com .editorconfig
Há mais opções para configurar o Include Cleanup, como excluir inclusões especificadas das sugestões de limpeza, indicando que alguns arquivos de cabeçalho são necessários para que a ferramenta não os marque como não utilizados, e assim por diante. Essas opções são definidas em um arquivo .editorconfig
, que você pode adicionar ao seu projeto para, entre outras coisas, impor estilos de codificação consistentes para todos que funcionam na base de código. Para obter mais informações sobre como adicionar um arquivo .editorconfig
ao seu projeto, confira Criar configurações de editor portáteis e personalizadas com o EditorConfig.
As configurações de .editorconfig
que você pode usar com o Include Cleanup são:
Configuração | Valores | Exemplo |
---|---|---|
cpp_include_cleanup_add_missing_error_tag_type Define o nível de erro das mensagens de adição de inclusões transitivas. |
none suggestion warning error |
cpp_include_cleanup_add_missing_error_tag_type = suggestion |
cpp_include_cleanup_remove_unused_error_tag_type Define o nível de erro das mensagens de remoção de inclusões não utilizadas. |
none suggestion warning error dimmed |
cpp_include_cleanup_remove_unused_error_tag_type = dimmed |
cpp_include_cleanup_excluded_files Exclui os arquivos especificados das mensagens do Include Cleanup. Você não receberá uma sugestão relacionada ao cabeçalho, seja para adicioná-lo ou indicando que ele não foi utilizado. |
filename | cpp_include_cleanup_excluded_files = vcruntime.h, vcruntime_string.h |
cpp_include_cleanup_required_files Especifique que o uso de file1 exige file2. Por exemplo, especifique que, se você usar atlwin.h , altbase.h também deve ser incluído. |
file1:file2 | cpp_include_cleanup_required_files = atlwin.h:altbase.h, atlcom.h:altbase.h |
cpp_include_cleanup_replacement_files Substitui file1 por file2 durante o processamento do Include Cleanup. Por exemplo, você pode preferir usar cstdio , em vez de stdio.h . Se você tiver um arquivo com #include <cstdio> e #include <stdio.h> , e você consumir conteúdo somente de stdio.h , com essa configuração, o Include Cleanup indicará que você remova stdio.h , porque ele substituiu o uso de cstdio por stdio.h durante o processamento. Se você não usar o conteúdo de nenhum dos dois, o recurso Include Cleanup indicará que você remova ambos. |
file1:file2 | cpp_include_cleanup_replacement_files = stdio.h:cstdio,stdint.h:cstdint |
cpp_include_cleanup_alternate_files Não gere uma mensagem para inclusão indireta file2, se o file1 foi incluído. Por exemplo, se você #include <windows.h> e estiver usando apenas algo do cabeçalho incluído indiretamente winerror.h , o Include Cleanup não solicitará a adição de winerror.h . Útil quando você prefere incluir um arquivo de cabeçalho de fachada, em vez das inclusões indiretas que ele contém. |
file1:file2 | cpp_include_cleanup_alternate_files = windows.h:winerror.h, windows.h:minwindef.h |
Confira também
Visão geral do C/C++ Include Cleanup
Mensagens do Include Cleanup