Udostępnij za pośrednictwem


Korzystanie z języka Clang-Tidy w programie Visual Studio

Obsługa oprogramowania Clang-Tidy wymaga programu Visual Studio 2019 w wersji 16.4 lub nowszej. Aby wyświetlić dokumentację dla tej wersji, ustaw kontrolkę selektora wersji programu Visual Studio dla tego artykułu na program Visual Studio 2019 lub nowszy. Znajduje się on w górnej części spisu treści na tej stronie.

Analiza kodu natywnie obsługuje język Clang-Tidy zarówno dla projektów MSBuild, jak i CMake, niezależnie od tego, czy są używane zestawy narzędzi Clang, czy MSVC. Testy Clang-Tidy mogą być uruchamiane w ramach analizy kodu w tle. Są one wyświetlane jako ostrzeżenia w edytorze (zygzaki) i wyświetlane na liście błędów.

Obsługa języka Clang-Tidy jest dostępna od wersji 16.4 programu Visual Studio 2019. Jest on dołączany automatycznie po wybraniu obciążenia C++ w Instalator programu Visual Studio.

Clang-Tidy to domyślne narzędzie do analizy w przypadku korzystania z zestawu narzędzi LLVM/clang-cl, dostępnego zarówno w programie MSBuild, jak i CMake. Można go skonfigurować podczas korzystania z zestawu narzędzi MSVC do uruchamiania obok lub zastępowania standardowego środowiska analizy kodu. Jeśli używasz zestawu narzędzi clang-cl, analiza kodu firmy Microsoft jest niedostępna.

Narzędzie Clang-Tidy jest uruchamiane po pomyślnej kompilacji. Aby uzyskać wyniki języka Clang-Tidy, może być konieczne rozwiązanie problemów z błędami kodu źródłowego.

MSBuild

Język Clang-Tidy można skonfigurować tak, aby był uruchamiany zarówno w ramach analizy kodu, jak i kompilacji na stronie Ogólne analizy>kodu w programie Project okno Właściwości. Opcje konfigurowania narzędzia można znaleźć w podmenu Clang-Tidy.

Aby uzyskać więcej informacji, zobacz How to: Set Code Analysis Properties for C/C++ Projects (Instrukcje: ustawianie właściwości analizy kodu dla projektów C/C++).

CMake

W projektach CMake można skonfigurować kontrole Clang-Tidy w programie CMakeSettings.json lub CMakePresets.json.

Język Clang-Tidy rozpoznaje następujące klucze:

  • enableMicrosoftCodeAnalysis: włącza analizę kodu firmy Microsoft
  • enableClangTidyCodeAnalysis: Włącza analizę Clang-Tidy
  • clangTidyChecks: konfiguracja Clang-Tidy. Rozdzielona przecinkami lista kontroli do włączenia lub wyłączenia. Wiodący - wyłącza sprawdzanie. Na przykład cert-oop58-cpp, -cppcoreguidelines-no-malloc, google-runtime-int włącza wartości cert-oop58-cpp i google-runtime-int, ale wyłącza funkcję cppcoreguidelines-no-malloc. Aby uzyskać listę testów Clang-Tidy, zobacz dokumentację Clang-Tidy.

Jeśli żadna z opcji "włącz" nie zostanie określona, program Visual Studio wybierze narzędzie do analizy zgodne z używanym zestawem narzędzi platformy.

Ustawienia narzędzia CMake

Aby edytować ustawienia Clang-Tidy, otwórz ustawienia narzędzia CMake i wybierz pozycję Edytuj kod JSON w Edytorze ustawień projektu CMake. Możesz użyć powyższych kluczy, aby wypełnić specyfikacje Clang-Tidy w pliku JSON ustawień narzędzia CMake.

Przykładowa implementacja ustawień narzędzia CMake wygląda następująco:

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

Ustawienia wstępne narzędzia CMake

Te same klucze mogą być używane w ustawieniach wstępnych narzędzia CMake za pośrednictwem vendor obiektu .

Przykładowa implementacja ustawień wstępnych narzędzia CMake wygląda następująco:

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

Wyświetlanie ostrzeżenia

Przebiegi Clang-Tidy powodują wyświetlenie ostrzeżeń na liście błędów, a w edytorze zwija się pod odpowiednimi sekcjami kodu. Aby sortować i organizować ostrzeżenia Clang-Tidy, użyj kolumny Kategoria w oknie Lista błędów. Możesz skonfigurować ostrzeżenia w edytorze, przełączając ustawienie Wyłącz zygzaki analizy kodu w obszarze Opcje narzędzi>.

Konfiguracja Clang-Tidy

Domyślnie Clang-Tidy nie ustawia żadnych testów po włączeniu. Aby wyświetlić listę testów w wersji wiersza polecenia, uruchom polecenie clang-tidy -list-checks w wierszu polecenia dewelopera. Możesz skonfigurować kontrole uruchamiane w programie Visual Studio w języku Clang-Tidy. W oknie dialogowym Strony właściwości projektu otwórz Wprowadź kontrole do uruchomienia we właściwości Clang-Tidy Checks . Dobrym zestawem domyślnym jest clang-analyzer-*. Ta wartość właściwości jest dostarczana do --checks argumentu narzędzia. Wszelkie dalsze konfiguracje można uwzględnić w plikach niestandardowych .clang-tidy . Aby uzyskać więcej informacji, zobacz dokumentację Clang-Tidy dotyczącą LLVM.org.

Katalog narzędzi Clang-Tidy

Jeśli chcesz mieć wbudowane reguły niestandardowe w plik wykonywalny clang-tidy i uruchomić go w programie Microsoft Visual Studio, możesz zmienić ścieżkę do pliku wykonywalnego, który jest uruchamiany przez program Visual Studio. W oknie dialogowym Strony właściwości projektu otwórz Ręcznie wpisz ścieżkę lub Przeglądaj i wybierz ścieżkę pod właściwością Clang-Tidy Tool Directory . Nowy plik wykonywalny jest używany po zapisaniu zmiany, a aplikacja zostanie ponownie skompilowana.

Clang-Tidy Dodatkowe Opcje

Właściwość Clang-Tidy Dodatkowe opcje umożliwia określenie dodatkowych argumentów kompilatora przekazywanych do Clang-Tidy przy użyciu --extra-args opcji wiersza polecenia. Te argumenty mogą służyć do kontrolowania sposobu analizowania kodu Clang-Tidy, takich jak definiowanie makr, dołączanie ścieżek lub standardów językowych. Wprowadź argumenty jako listę rozdzieloną średnikami. Na przykład: -std=c++20;-DMY_DEFINE=1;-Ipath\to\include.

Clang-Tidy Dodaj dodatkowe opcje na początku

Właściwość Clang-Tidy Prepend Additional Options umożliwia określenie argumentów kompilatora przekazywanych do Clang-Tidy przy użyciu --extra-args-before opcji wiersza polecenia. Te argumenty są wstawiane przed domyślnymi argumentami kompilatora podczas Clang-Tidy analizowania kodu. Wprowadź argumenty jako listę rozdzieloną średnikami. Na przykład: -std=c++20;-DMY_DEFINE=1;.

Maksymalna liczba procesów

Właściwość Maksymalna liczba procesów umożliwia określenie, ile procesów Clang-Tidy może użyć do równoległego uruchamiania analizy. Domyślnie Clang-Tidy jest uruchamiana szeregowo. Ustaw tę właściwość, aby włączyć wykonywanie równoległe i określić liczbę procesów równoległych. Ustaw 0 tak, aby używać wszystkich dostępnych procesorów logicznych w systemie. Zwiększenie liczby procesów może zwiększyć szybkość analizy na maszynach wielordzeniowych.

Zobacz też

Obsługa języka Clang/LLVM dla projektów MSBuild
Obsługa języka Clang/LLVM dla projektów CMake