微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

使用可读性标识符命名时,clang-tidy 将命名空间视为全局变量

如何解决使用可读性标识符命名时,clang-tidy 将命名空间视为全局变量

我正在使用 clang-tidy 来整理源代码。在文件 .clang-tidy 中我定义了:

Checks: '-*,readability-identifier-naming'
CheckOptions:
...
  - { key: readability-identifier-naming.NamespacePrefix,value: n1_        },- { key: readability-identifier-naming.GlobalVariablePrefix,value: g1_        },...

myHeader.h:

namespace n1_test
{
...
}

Linux Mint 19.2 (Tina)

上使用 clang-tidy(尝试 11.1.0、13.0.0git(均由我自己编译)和 10.0.0(下载))整理此文件

与:

clang-tidy-11.1.0 -export-fixes=fixes.txt /tmp/clangTest/mylib/source/myHeader.h -- -I/tmp/clangTest/myLib/source

结果:

 warning: invalid case style for global variable 'n1_test' [readability-identifier-naming]
namespace n1_test {
          ^~~~~~~~~~
          g1_n1_test

我不明白为什么 NamespacePrefix 不起作用,并且 clang-tidy 将命名空间视为全局变量。我还测试了 NamespaceCase,但它不起作用。

PS:根据 documentation 这应该可以工作

解决方法

不能直接在头文件上使用 clang-tidy。相反,我必须检查 cpp 文件并添加 -header-filter=.* 以检查标题:

clang-tidy-11.1.0 -header-filter=.* -export-fixes=fixes.txt /tmp/clangTest/mylib/source/main.cpp -- -I/tmp/clangTest/myLib/source

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。