我想为在我的代码库上运行的clang-tidy配置readability-identifier-naming
检查器。
clang-tidy中的检查器可以提供CheckOptions,例如:
clang-tidy -checks='-*,readability-identifier-naming' \
-config="{CheckOptions: [ {key: readability-identifier-naming.ClassCase, value: CamelCase} ]}" main.cpp
还可以在.clang-tidy文件中指定一个选项。
在哪里可以找到可用选项的列表(在这种情况下,用于readability-identifier-naming
检查),例如上面的代码行中的ClassCase
?
official documentation并不是很具体,只是说“许多配置选项可用,以便能够为不同种类的标识符创建不同的规则。”
我在github上发现了this page,对此进行了更详细的解释(但仍然无法解决问题)。
我还在Microsoft's repository的文件中找到了一个巨大的列表,但我不知道他们从哪里得到的。
我认为,如果要求的话,也许clang-tidy会丢弃所有可能的选项。 如果您运行
clang-tidy -checks=* --dump-config
(或仅指定readability-identifier-naming
检查器。没关系,输出相同)
clang-tidy -checks='-*,readability-identifier-naming --dump-config
转储文件仅包含一个有关可读性-标识符-命名的选项,即:
- key: readability-identifier-naming.IgnoreFailedSplit
value: '0'
我还试图浏览整洁的源代码,但没有成功。
如果有人可以将我指向包含所有可用CheckOptions列表的地方(如果存在),我将不胜感激。
答案 0 :(得分:1)
我在哪里找到可用选项的列表(在这种情况下用于可读性标识符命名检查),例如上面的代码行中的ClassCase?
此后,此列表已出现在您最初链接到here的页面上。
我在github上发现了this page,对此进行了更详细的解释(但仍然不能解决问题)。
现在可以了!
答案 1 :(得分:0)
最简单的方法是查看此检查here的测试的源代码:
// RUN: %check_clang_tidy %s readability-identifier-naming %t -- \
// RUN: -config='{CheckOptions: [ \
// RUN: {key: readability-identifier-naming.AbstractClassCase, value: CamelCase}, \
// RUN: {key: readability-identifier-naming.AbstractClassPrefix, value: 'A'}, \
...etc.
此列表不能保证是详尽无遗的,因为它只是用于测试的命令。要真正确定,您必须查看支票本身的here的源代码,并找到所有的命名键:
#define NAMING_KEYS(m) \
m(Namespace) \
m(InlineNamespace) \
m(EnumConstant) \
...
这些命名键然后被字符串化为StylenaNames[]
。然后查看IdentifierNamingCheck::storeOptions()
函数:
for (size_t i = 0; i < SK_Count; ++i) {
Options.store(Opts, (StyleNames[i] + "Case").str(),
toString(NamingStyles[i].Case));
Options.store(Opts, (StyleNames[i] + "Prefix").str(),
NamingStyles[i].Prefix);
Options.store(Opts, (StyleNames[i] + "Suffix").str(),
NamingStyles[i].Suffix);
}
,您将看到每个与Case,Prefix或Suffix并置的命名键都可以指定为选项。这为您提供了此检查的可能选项的明确列表。