Verwenden von Clang-Tidy in Visual Studio

Zur Unterstützung von Clang-Tidy ist Visual Studio 2019, Version 16.4 oder höher, erforderlich. Wenn Sie die Dokumentation für diese Version anzeigen möchten, stellen Sie das Steuerelement zur Auswahl der Version von Visual Studio für diesen Artikel auf „Visual  Studio 2019“ ein. Es befindet sich am Anfang des Inhaltsverzeichnisses auf dieser Seite.

Code Analysis unterstützt jetzt Clang-Tidy für MSBuild- und CMake-Projekte nativ, unabhängig davon, ob Sie das Clang- oder MSVC-Toolset verwenden. Clang-Tidy-Überprüfungen können als Teil der Codeanalyse im Hintergrund ausgeführt werden. Sie werden im Editor als Warnungen (Wellenlinien) und in der Fehlerliste angezeigt.

Clang-Tidy-Unterstützung ist ab Visual Studio 2019, Version 16.4, verfügbar. Sie wird automatisch eingebunden, wenn Sie eine C++-Workload im Visual Studio-Installer auswählen.

Clang-Tidy ist das Standardanalysetool bei Verwendung des Toolsets LLVM/clang-cl, das sowohl in MSBuild als auch in CMake verfügbar ist. Sie können es bei Verwendung eines MSVC-Toolset konfigurieren, sodass es zusammen mit der standardmäßigen Code Analysis-Umgebung ausgeführt wird oder diese ersetzt. Wenn Sie das clang-cl-Toolset verwenden, ist Microsoft Code Analysis nicht verfügbar.

Clang-Tidy wird nach erfolgreicher Kompilierung ausgeführt. Möglicherweise müssen Sie Quellcodefehler beheben, um Clang-Tidy-Ergebnisse zu erhalten.

MSBuild

Sie können Clang-Tidy so konfigurieren, dass es sowohl als Teil von Code Analysis als auch im Build unter der Seite Code Analysis>Allgemein im Projekteigenschaftenfenster ausgeführt wird. Optionen zum Konfigurieren des Tools finden Sie im Untermenü „Clang-Tidy“.

Weitere Informationen finden Sie unter Gewusst wie: Festlegen von Code Analysis-Eigenschaften für C/C++-Projekte.

CMake

In CMake-Projekten können Sie Clang-Tidy-Überprüfungen in CMakeSettings.json oder CMakePresets.json konfigurieren.

Clang-Tidy erkennt die folgenden Schlüssel:

  • enableMicrosoftCodeAnalysis: Aktiviert Microsoft Code Analysis
  • enableClangTidyCodeAnalysis: Aktiviert die Clang-Tidy-Analyse
  • clangTidyChecks: Clang-Tidy-Konfiguration. Eine durch Trennzeichen getrennte Liste der Überprüfungen, die aktiviert oder deaktiviert werden sollen. Ein führendes Zeichen - deaktiviert die Überprüfung. Beispielsweise aktiviert cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int cert-oop58-cpp und google-runtime-int, deaktiviert jedoch cppcoreguidelines-no-malloc. Eine Liste der Clang-Tidy-Überprüfungen finden Sie in der Clang-Tidy-Dokumentation.

Wenn keine Optionen für die Aktivierung angegeben sind, wählt Visual Studio das Analysetool aus, das dem verwendeten Plattformtoolset entspricht.

CMake-Einstellungen

Um Ihre Clang-Tidy-Einstellungen zu bearbeiten, öffnen Sie Ihre CMake-Einstellungen, und wählen Sie im CMake-Projekteinstellungs-Editor JSON bearbeiten aus. Sie können die oben genannten Schlüssel verwenden, um Ihre Clang-Tidy-Spezifikationen in der JSON-Datei für CMake-Einstellungen auszufüllen.

Eine Beispielimplementierung für CMake-Einstellungen sieht wie folgt aus:

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

CMake-Voreinstellungen

Sie können die gleichen Schlüssel in Ihren CMake-Voreinstellungen über das vendor-Objekt verwenden.

Ein Beispiel für eine Implementierung von CMake-Voreinstellungen sieht wie folgt aus:

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

Warnungsanzeige

Clang-Tidy-Ausführungen können zu Warnungen führen, die in der Fehlerliste angezeigt werden und im Editor als Wellenlinien unter den relevanten Codeabschnitten erscheinen. Verwenden Sie die Spalte Kategorie im Fenster Fehlerliste, um Clang-Tidy-Warnungen zu sortieren und zu organisieren. Sie können im Editor angezeigte Warnungen konfigurieren, indem Sie unter Extras>Optionen die Einstellung Codeanalyse-Squiggles deaktivieren umschalten.

Clang-Tidy-Konfiguration

Standardmäßig legt Clang-Tidy keine Überprüfungen fest, wenn es aktiviert wird. Um die Liste der Überprüfungen in der Befehlszeilenversion anzuzeigen, führen Sie clang-tidy -list-checks in einer Eingabeaufforderung der Entwicklerumgebung aus. Sie können die Überprüfungen konfigurieren, die Clang-Tidy in Visual Studio ausführt. Öffnen Sie im Dialogfeld „Eigenschaftenseiten“ des Projekts die Seite Konfigurationseigenschaften>Code Analysis>Clang-Tidy. Geben Sie die auszuführenden Überprüfungen in der Eigenschaft Clang-Tidy Checks an. Ein guter Standardsatz ist clang-analyzer-*. Dieser Eigenschaftswert wird für das Argument --checks des Tools bereitgestellt. Jede weitere Konfiguration kann in benutzerdefinierte .clang-tidy-Dateien eingeschlossen werden. Weitere Informationen finden Sie in der Clang-Tidy-Dokumentation auf LLVM.org.

Verzeichnis des Clang-Tidy-Tools

Wenn Sie benutzerdefinierte Regeln in Ihre ausführbare Datei mit Clang-Tidy integriert haben und sie in Microsoft Visual Studio ausführen möchten, können Sie den Pfad zu der ausführbaren Datei ändern, die Visual Studio ausführt. Öffnen Sie im Dialogfeld „Eigenschaftenseiten“ des Projekts die Seite Konfigurationseigenschaften>Code Analysis>Clang-Tidy. Geben Sie manuell den Pfad ein oder navigieren und wählen Sie den Pfad unter der Verzeichnis-Eigenschaft des Clang-Tidy-Tool aus. Die neue ausführbare Datei wird verwendet, sobald die Änderung gespeichert wurde, und die App wird neu kompiliert.

Weitere Informationen

Clang/LLVM-Unterstützung für MSBuild-Projekte
Clang/LLVM-Unterstützung für CMake-Projekte