Delen via


Clang-Tidy gebruiken in Visual Studio

Voor ondersteuning voor Clang-Tidy is Visual Studio 2019 versie 16.4 of hoger vereist. Als u de documentatie voor deze versie wilt bekijken, stelt u het versieselectiebesturingselement van Visual Studio in op Visual Studio 2019 of hoger voor dit artikel. Deze bevindt zich boven aan de inhoudsopgave op deze pagina.

Codeanalyse biedt systeemeigen ondersteuning voor Clang-Tidy voor zowel MSBuild- als CMake-projecten, ongeacht of Clang- of MSVC-toolsets worden gebruikt. Clang-Tidy controles kunnen worden uitgevoerd als onderdeel van analyse van achtergrondcode. Ze worden weergegeven als waarschuwingen in de editor (kronkellijnen) en getoond in de lijst met fouten.

Clang-Tidy ondersteuning is beschikbaar vanaf Visual Studio 2019 versie 16.4. Deze wordt automatisch opgenomen wanneer u een C++-workload kiest in het Installatieprogramma van Visual Studio.

Clang-Tidy is het standaardanalysehulpprogramma wanneer u de LLVM-/clang-cl-toolset gebruikt, die beschikbaar is in zowel MSBuild als CMake. U kunt dit configureren wanneer u een MSVC-toolset gebruikt om het gelijktijdig uit te voeren met of om de standaard Codeanalyse-ervaring te vervangen. Als u de clang-cl-toolset gebruikt, is Microsoft Code Analysis niet beschikbaar.

Clang-Tidy wordt uitgevoerd na een geslaagde compilatie. Mogelijk moet u broncodefouten oplossen om Clang-Tidy resultaten op te halen.

MSBuild

U kunt Clang-Tidy configureren om te worden uitgevoerd als onderdeel van zowel codeanalyse als build onder de pagina Codeanalyse>algemeen in het venster Projecteigenschappen. Opties voor het configureren van het hulpprogramma vindt u in het submenu Clang-Tidy.

Zie Voor meer informatie : Eigenschappen van codeanalyse instellen voor C/C++-projecten.

CMake

In CMake-projecten kunt u Clang-Tidy controles binnen CMakeSettings.json of CMakePresets.jsonconfigureren.

Clang-Tidy herkent de volgende sleutels:

  • enableMicrosoftCodeAnalysis: Hiermee schakelt u Microsoft Code-analyse in
  • enableClangTidyCodeAnalysis: schakelt Clang-Tidy analyse in
  • clangTidyChecks: Clang-Tidy configuratie. Een door komma's gescheiden lijst met controles die moeten worden ingeschakeld of uitgeschakeld. Een voorafgaand - schakelt de controle uit. Bijvoorbeeld: cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int inschakelen cert-oop58-cpp en google-runtime-int, maar uitschakelen cppcoreguidelines-no-malloc. Zie de Clang-Tidy documentatie voor een lijst met Clang-Tidy controles.

Als geen van de opties 'inschakelen' is opgegeven, selecteert Visual Studio het analyseprogramma dat overeenkomt met de gebruikte platformhulpprogramma's.

CMake-instellingen

Als u de Clang-Tidy-instellingen wilt bewerken, opent u de CMake-instellingen en selecteert u JSON bewerken in de CMake Project Settings Editor. U kunt de bovenstaande sleutels gebruiken om uw Clang-Tidy specificaties in te vullen in het JSON-bestand CMake Settings.

Een voorbeeld van de implementatie van CMake-instellingen ziet er als volgt uit:

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

CMake-voorinstellingen

Dezelfde sleutels kunnen worden gebruikt in de vooraf ingestelde CMake-instellingen via het vendor object.

Een voorbeeld van een vooraf ingestelde CMake-implementatie ziet er als volgt uit:

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

Waarschuwingsweergave

Clang-Tidy-uitvoeringen resulteren in waarschuwingen die worden weergegeven in de foutenlijst en als in-editor golflijntjes onder relevante secties van de code. Als u Clang-Tidy waarschuwingen wilt sorteren en ordenen, gebruikt u de kolom Categorie in het venster Foutenlijst . U kunt waarschuwingen in de editor configureren door de instelling Codeanalyse golflijnen uitschakelen onder Extra>Opties in te schakelen.

configuratie van Clang-Tidy

Standaard worden in Clang-Tidy geen controles ingesteld wanneer deze zijn ingeschakeld. Als u de lijst met controles in de opdrachtregelversie wilt bekijken, voert u deze uit clang-tidy -list-checks in een opdrachtprompt voor ontwikkelaars. U kunt de controles configureren die door Clang-Tidy worden uitgevoerd in Visual Studio. Open in het dialoogvenster Eigenschappenpagina's van het project de pagina Configuratie-eigenschappen>Codeanalyse>Clang-Tidy. Voer controles in die moeten worden uitgevoerd in de eigenschap Clang-Tidy Controles . Een goede standaardset is clang-analyzer-*. Deze eigenschapswaarde wordt verstrekt aan het --checks argument van het hulpprogramma. Elke verdere configuratie kan worden opgenomen in aangepaste .clang-tidy bestanden. Zie de Clang-Tidy documentatie over LLVM.org voor meer informatie.

Clang-Tidy-hulpprogrammamap

Als u aangepaste regels wilt laten inbouwen in uw clang-tidy-uitvoerbare bestand en het wilt uitvoeren in Microsoft Visual Studio, kunt u het pad wijzigen naar het uitvoerbare bestand dat door Visual Studio wordt uitgevoerd. Open in het dialoogvenster Eigenschappenpagina's van het project de pagina Configuratie-eigenschappen>Codeanalyse>Clang-Tidy. Typ het pad handmatig in of Blader en selecteer het pad onder de eigenschap Clang-Tidy Tool Directory. Het nieuwe uitvoerbare bestand wordt gebruikt zodra de wijziging is opgeslagen en de app opnieuw wordt gecompileerd.

Clang-Tidy aanvullende opties

Met de eigenschap Clang-Tidy Aanvullende opties kunt u extra compilerargumenten opgeven die worden doorgegeven aan Clang-Tidy met behulp van de --extra-args opdrachtregeloptie. Deze argumenten kunnen worden gebruikt om te bepalen hoe Clang-Tidy uw code parseert, zoals het definiëren van macro's, paden of taalstandaarden bevatten. Voer argumenten in als een door puntkomma's gescheiden lijst. Voorbeeld: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include.

Clang-Tidy Aanvullende opties vooraf toevoegen

Met de eigenschap Clang-Tidy Aanvullende opties vooraf opgeven, kunt u compilerargumenten opgeven die worden doorgegeven aan Clang-Tidy met behulp van de --extra-args-before opdrachtregeloptie. Deze argumenten worden ingevoegd vóór de standaardcompilatorargumenten wanneer Clang-Tidy de code parseert. Voer argumenten in als een door puntkomma's gescheiden lijst. Voorbeeld: -std=c++20;-DMY_DEFINE=1;.

Maximum aantal processen

Met de eigenschap Max Number of Processes kunt u opgeven hoeveel processen Clang-Tidy kunnen gebruiken om een analyse parallel uit te voeren. Standaard wordt Clang-Tidy serieel uitgevoerd. Stel deze eigenschap in om parallelle uitvoering in te schakelen en het aantal parallelle processen op te geven. Stel dit in op 0 om alle beschikbare logische processors op uw systeem te gebruiken. Het verhogen van het aantal processen kan de analysesnelheid op machines met meerdere kernen verbeteren.

Zie ook

Clang/LLVM-ondersteuning voor MSBuild-projecten
Clang/LLVM-ondersteuning voor CMake-projecten