Partilhar via


Usando 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 desta versão, defina o controle do selector de versão do Visual Studio para este artigo como Visual Studio 2019 ou posterior. Está no topo do índice desta página.

A Análise de Código suporta nativamente o Clang-Tidy para projetos MSBuild e CMake, seja usando conjuntos de ferramentas Clang ou MSVC. As verificações de Clang-Tidy podem ser executadas como parte da análise de código em segundo plano. Eles aparecem como avisos no editor (squiggles) e são exibidos na Lista de Erros.

Clang-Tidy suporte 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 Visual Studio Installer.

Clang-Tidy é a ferramenta de análise padrão ao usar o conjunto de ferramentas LLVM/clang-cl, disponível no MSBuild e CMake. Você pode configurá-lo ao usar um conjunto de ferramentas MSVC para ser executado ao lado ou para substituir a experiência padrão de Análise de Código. Se você usar o conjunto de ferramentas clang-cl, o Microsoft Code Analysis não estará disponível.

Clang-Tidy é executado após a compilação bem-sucedida. Poderá ser necessário resolver erros no código-fonte para obter os resultados Clang-Tidy.

MSBuild

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

Para obter mais informações, consulte Como definir propriedades de análise de código para projetos C/C++.

CMake

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

Clang-Tidy reconhece as seguintes chaves:

  • enableMicrosoftCodeAnalysis: Habilita a Análise de Código da Microsoft
  • enableClangTidyCodeAnalysis: Permite a análise de Clang-Tidy
  • clangTidyChecks: configuração Clang-Tidy. Uma lista separada por vírgulas de verificações para habilitar ou desabilitar. Um elemento prioritário - desativa 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 de Clang-Tidy, consulte a documentaçãoClang-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 CMake. Você pode usar as teclas acima para preencher suas especificações de Clang-Tidy no arquivo JSON CMake Settings.

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

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

Predefinições CMake

As mesmas teclas podem ser usadas em suas predefinições CMake através do vendor objeto.

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
      }
    }
}
]

Visor de aviso

Execuções do Clang-Tidy resultam em avisos exibidos na Lista de Erros e em sublinhados ondulados no editor, abaixo de seções relevantes do código. Para classificar e organizar Clang-Tidy avisos, use a coluna Categoria na janela Lista de Erros . Pode configurar avisos no editor, alternando a configuração Desativar squiggles de análise de código em Ferramentas>Opções.

Clang-Tidy configuração

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

Diretório de ferramentas Clang-Tidy

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

Clang-Tidy opções adicionais

A propriedade Opções AdicionaisClang-Tidy permite especificar argumentos adicionais do compilador que são passados para Clang-Tidy usando a opção de linha de --extra-args comando. Esses argumentos podem ser usados para controlar como Clang-Tidy analisa seu código, como definir macros, incluir caminhos ou padrões de linguagem. Insira argumentos como uma lista separada por ponto-e-vírgula. Por exemplo: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include.

Clang-Tidy Opções adicionais pendentes

A propriedade Clang-Tidy Prepend Opções Adicionais permite especificar argumentos do compilador que são passados para Clang-Tidy usando a opção de linha de comandos --extra-args-before. Esses argumentos são inseridos antes dos argumentos do compilador padrão quando Clang-Tidy analisa seu código. Insira argumentos como uma lista separada por ponto-e-vírgula. Por exemplo: -std=c++20;-DMY_DEFINE=1;.

Número máximo de processos

A propriedade Número Máximo de Processos permite especificar quantos processos Clang-Tidy pode usar para executar análises em paralelo. Por padrão, Clang-Tidy é executado em série. Defina essa propriedade para habilitar a execução paralela e especifique o número de processos paralelos. Configure-o para 0 usar todos os processadores lógicos disponíveis no seu sistema. Aumentar o número de processos pode melhorar a velocidade de análise em máquinas multi-core.

Ver também

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