Usar Clang-Tidy no Visual Studio

O suporte para Clang-Tidy requer o Visual Studio 2019 versão 16.4 ou posterior. Para ver a documentação dessas versões, defina o controle seletor de Versão do Visual Studio para este artigo do Visual Studio 2019 ou posteriores. Ele está na parte superior do sumário nesta página.

O Code Analysis dá suporte nativamente ao Clang-Tidy em projetos do MSBuild e do CMake, independentemente de você estar usando os conjuntos de ferramentas Clang ou o MSVC. As verificações do Clang-Tidy podem ser executadas como parte da análise de código em segundo plano. Elas aparecem como avisos no editor (rabiscos) e são exibidas na Lista de Erros.

Suporte ao Clang-Tidy está disponível a partir do Visual Studio 2019 versão 16.4. Ele é incluído automaticamente quando você escolhe uma carga de trabalho C++ no Instalador do Visual Studio.

Clang-Tidy é a ferramenta de análise padrão ao usar o conjunto de ferramentas LLVM/clang-cl, disponível tanto no MSBuild quanto no CMake. Você pode configurá-lo ao usar um conjunto de ferramentas MSVC para executar paralelamente ou em substituição à experiência padrão do Code Analysis. Se você usar o conjunto de ferramentas clang-cl, o Microsoft Code Analysis não fica disponível.

O Clang-Tidy é executado após uma compilação bem-sucedida. Talvez seja necessário resolver erros de código-fonte para obter resultados do Clang-Tidy.

MSBuild

Você pode configurar o Clang-Tidy para executar como parte da Análise de Código e compilar na página Code Analysis>Geral na janela Propriedades do Projeto. As opções para configurar a ferramenta podem ser encontradas no submenu do Clang-Tidy.

Para obter mais informações, consulte Como definir propriedades do Code Analysis para projetos do C/C++.

CMake

Em projetos do CMake, você pode configurar verificações Clang-Tidy dentro de CMakeSettings.json ou CMakePresets.json.

O Clang-Tidy reconhece as seguintes chaves:

  • enableMicrosoftCodeAnalysis: Habilita o Microsoft Code Analysis
  • enableClangTidyCodeAnalysis: Habilita análise do Clang-Tidy
  • clangTidyChecks: configuração do Clang-Tidy. Uma lista separada por vírgulas de verificações para habilitar ou desabilitar. Um - à esquerda desabilita a verificação. Por exemplo, cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int habilita cert-oop58-cpp e google-runtime-int, mas desabilita cppcoreguidelines-no-malloc. Para obter uma lista de verificações Clang-Tidy, consulte a documentação Clang-Tidy.

Se nenhuma das opções "habilitar" for especificada, o Visual Studio selecionará a ferramenta de análise correspondente ao conjunto de ferramentas de plataforma usado.

Configurações do CMake

Para editar as configurações do Clang-Tidy, abra as configurações do CMake e selecione Editar JSON no Editor de Configurações do projeto do CMake. Você pode usar as chaves acima para preencher suas especificações do Clang-Tidy no arquivo JSON de configurações do CMake.

Uma implementação de configurações do CMake de exemplo tem esta aparência:

{
  "configurations": [
  {
    "name": "x64-debug",
    "generator": "Ninja",
    ....
   "clangTidyChecks": "llvm-include-order, -modernize-use-override",
   "enableMicrosoftCodeAnalysis": true,
   "enableClangTidyCodeAnalysis": true
  }
  ]
}

Predefinições do CMake

As mesmas chaves podem ser usadas em suas predefinições do CMake por meio do objeto vendor.

Um exemplo de implementação predefinida do CMake tem esta aparência:

"configurePreset": [
{ "name": "base",
  ....
  "vendor": {
    "microsoft.com/VisualStudioSettings/CMake/1.0": {
      "clangTidyChecks": "llvm-include-order, -modernize-use-override",
      "enableMicrosoftCodeAnalysis": true,
      "enableClangTidyCodeAnalysis": true
      }
    }
}
]

Exibição de aviso

As execuções do Clang-Tidy resultam em avisos exibidos na Lista de Erros e conforme o editor interno rabisca sob seções relevantes do código. Para classificar e organizar avisos Clang-Tidy, use a coluna Categoria na janela Lista de Erros. Você pode configurar avisos no editor alternando a configuração Desabilitar rabiscos do Code Analysis em Ferramentas>Opções.

Configuração do Clang-Tidy

Por padrão, o Clang-Tidy não define nenhuma verificação quando habilitado. Para ver a lista de verificações na versão da linha de comando, execute clang-tidy -list-checks em um prompt de comando do desenvolvedor. Você pode configurar as verificações de que o Clang-Tidy é executado dentro do Visual Studio. Na caixa de diálogo Páginas de propriedades do projeto, abra a página Propriedades de configuração>Code Analysis>Clang-Tidy. Insira verificações para serem executadas na propriedade Clang-Tidy Checks. Um bom conjunto padrão é clang-analyzer-*. Esse valor de propriedade é fornecido ao argumento --checks da ferramenta. Qualquer configuração adicional pode ser incluída em arquivos personalizados .clang-tidy. Para obter mais informações, consulte a documentação do Clang-Tidy no LLVM.org.

Diretório de Ferramentas Clang-Tidy

Se quiser ter regras personalizadas incorporadas ao executável do clang-tidy e executá-lo no Microsoft Visual Studio, você poderá alterar o caminho do executável que o Visual Studio executa. Na caixa de diálogo Páginas de propriedades do projeto, abra a página Propriedades de configuração>Code Analysis>Clang-Tidy. Digite manualmente o caminho ou Procure e selecione o caminho na propriedade do Diretório de Ferramentas Clang-Tidy. O novo executável é usado depois que a alteração é salva e o aplicativo é recompilado.

Confira também

Suporte do Clang/LLVM para projetos do MSBuild
Suporte do Clang/LLVM para projetos do CMake