clang-format 的默认 BasedOnStyle 值是多少?

Lou*_*ltz 6 clang-format

ClangFormatBasedOnStyle样式选项是否有一个默认值,如果用户未选择该选项,则应用该默认值,如果有,该默认值是多少?

根据Clang 12 的CLANG-FORMAT STYLE OPTIONS文档的BasedOnStyle选项部分,是一个可配置的格式样式选项,可以是、、、、、或 之一。然而,该部分没有提及是否有默认值。BasedOnStyleLLVMGoogleChromiumMozillaWebKitMicrosoftGNUBasedOnStyle

我在网上搜索文档来回答这个问题,但没有找到。扫描了 SO 上所有clang-format标记问题的用途,BasedOnStyle也没有找到答案。考虑到 ClangFormat 来自 LLVM 项目,这个选项的默认值也就不足为奇了,LLVM但假设这个选项有一个默认值,这似乎一开始就不清楚。

Lou*_*ltz 5

鉴于似乎还没有对此进行问答,并且猜测其他人也想知道这个问题或会想知道这个问题,我想我应该发布这个问题,以及我最终找到的答案(遗憾的是只有在检查了源代码)...

在文件的注释clang/include/clang/Format/Format.h以及文件RawStringFormats的部分中clang/docs/ClangFormatStyleOptions.rst,有以下句子:

如果未找到“BasedOnStyle”,则格式化基于 llvm 样式。

这让我回到了我在问题中提到的Clang-FORMAT STYLE OPTIONS文档,我意识到这些信息一直存在。它只是不在 部分中BasedOnStyle,但令人困惑的是在 部分中RawStringFormats

此外,在clang-format-configurator上进行测试,似乎证实了默认BasedOnStyle值确实是LLVM并且运行clang-format --dump-config | grep BasedOnStyle显示:

# 基于样式:LLVM