跳转至

使用 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