在 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
将在 src/.clang-tidy
找到 Chromium 的配置,并使用 Chromium 启用的检查。 您可以使用 --checks=
选项更改运行的检查。 这会直接传递给 clang-tidy
,因此请参阅其文档以获取完整详细信息。 可以使用通配符,并且可以通过在前面加上 -
来禁用检查。 默认情况下,任何列出的检查都会添加到 .clang-tidy
中的检查中,因此如果您想将检查限制为特定的检查,您应该首先排除所有检查,然后添加回您想要的检查,例如 --checks=-*,performance*
。
运行 clang-tidy
相当慢 - 在内部它编译每个文件然后运行检查,因此它总是比编译慢一些倍数。 虽然您可以使用并行运行通过 --jobs|-j
选项来加速它,但 clang-tidy
在其检查期间也会使用大量内存,因此它很容易遇到内存不足错误。 因此,默认作业数为 1。