使用 clang-tidy 检查 C++ 代码¶
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 在检查期间也会消耗大量内存,因此很容易遇到内存不足的错误。
因此,默认的 job 数量为一。
本页原文 Markdown:在 AtomGit 查看·内容源自开源项目 el/electron