在 C++ 程式碼上使用 clang-tidy
clang-tidy
是一個自動檢查 C/C++/Objective-C 程式碼中風格違規、程式錯誤和最佳實務的工具。
Electron 的 clang-tidy
整合是以 linter 腳本的形式提供,可以使用 npm run lint:clang-tidy
執行。雖然 clang-tidy
會檢查您磁碟上的檔案,但您需要先建置 Electron,以便它知道使用了哪些編譯器標誌。腳本有一個必要的選項 --output-dir
,它告訴腳本要從哪個建置目錄提取編譯資訊。典型的用法是:npm run lint:clang-tidy --out-dir ../out/Testing
如果沒有提供檔案名稱,將會檢查所有 C/C++/Objective-C 檔案。您可以透過在選項後傳遞檔案名稱來提供要檢查的檔案清單:npm run lint:clang-tidy --out-dir ../out/Testing shell/browser/api/electron_api_app.cc
雖然 clang-tidy
有一個 長長的清單 列出可能的檢查項目,但在 Electron 中,預設只啟用少數幾個。目前 Electron 沒有 .clang-tidy
設定檔,因此 clang-tidy
將會找到 Chromium 在 src/.clang-tidy
中的設定檔,並使用 Chromium 已啟用的檢查項目。您可以使用 --checks=
選項來變更要執行的檢查項目。這會直接傳遞給 clang-tidy
,因此請參閱其文件以了解完整詳細資訊。可以使用萬用字元,並且可以透過在前面加上 -
來停用檢查項目。預設情況下,任何列出的檢查項目都會新增到 .clang-tidy
中的項目,因此如果您想要將檢查項目限制為特定的項目,您應該先排除所有檢查項目,然後再加回您想要的項目,例如 --checks=-*,performance*
。
執行 clang-tidy
相當慢 - 在內部,它會編譯每個檔案,然後執行檢查,因此它總是會比編譯慢一些倍數。雖然您可以使用平行執行來使用 --jobs|-j
選項加速它,但 clang-tidy
在其檢查期間也會使用大量記憶體,因此很容易遇到記憶體不足錯誤。因此,預設的工作數量為一個。