clang-format 的默认 BasedOnStyle 值是多少?
What's the default BasedOnStyle value for clang-format?
如果用户未选择,ClangFormat BasedOnStyle
样式选项是否有默认值?如果有,默认值是多少?
根据 Clang 12 CLANG-FORMAT STYLE OPTIONS 文档的 BasedOnStyle 选项部分,BasedOnStyle
是一个可配置的格式样式选项,可以是 LLVM
、Google
、Chromium
、Mozilla
、WebKit
、Microsoft
或 GNU
。然而,该部分没有提及 BasedOnStyle
是否有默认值。
我在网上搜索了文档来回答这个问题,但没有找到。在 SO 上扫描所有 clang-format
标记的问题以使用 BasedOnStyle
也没有找到答案。鉴于 ClangFormat 来自 LLVM 项目,此选项默认为 LLVM
并不奇怪,但假设此选项有一个似乎不清楚的默认值。
鉴于 SO 上似乎还没有针对此问题的问答,并且猜测其他人也对此感到疑惑或将对此感到疑惑,我想我 post 问题和答案我终于找到了(遗憾的是只有在查看源代码之后)...
在clang/include/clang/Format/Format.h
file, and also in the RawStringFormats
section of the clang/docs/ClangFormatStyleOptions.rst
文件的注释中,是下面这句话:
If 'BasedOnStyle' is not found, the formatting is based on llvm style.
这让我回到了我在问题中提到的 Clang 12 的 CLANG-FORMAT STYLE OPTIONS 文档,我意识到这些信息一直存在。它只是不在 BasedOnStyle
部分,但令人困惑的是在 RawStringFormats
.
部分
此外,对 clang-format-configurator 的测试似乎证实了默认 BasedOnStyle
值确实是 LLVM
并且 运行 clang-format --dump-config | grep BasedOnStyle
显示:
# BasedOnStyle: LLVM
我也很好奇它是如何工作的。
以下两行代码,在我看来,解释了一切:
const char *DefaultFormatStyle = "file";
const char *DefaultFallbackStyle = "LLVM";
来源:https://github.com/llvm/llvm-project/blob/main/clang/lib/Format/Format.cpp#L2942-L2944
初始化 Style
和 FallbackStyle
变量时,这些值将用于 ClangFormat.cpp
文件。
来源:https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/ClangFormat.cpp#L62-L66
尽管文档指出样式配置需要通过 --style
选项显式传递,但 clang-format
在直接调用时有效。
# File is formatted with default configuration
# or with options from the ".clang-format` file, if present.
clang-format -i <file>
如果用户未选择,ClangFormat BasedOnStyle
样式选项是否有默认值?如果有,默认值是多少?
根据 Clang 12 CLANG-FORMAT STYLE OPTIONS 文档的 BasedOnStyle 选项部分,BasedOnStyle
是一个可配置的格式样式选项,可以是 LLVM
、Google
、Chromium
、Mozilla
、WebKit
、Microsoft
或 GNU
。然而,该部分没有提及 BasedOnStyle
是否有默认值。
我在网上搜索了文档来回答这个问题,但没有找到。在 SO 上扫描所有 clang-format
标记的问题以使用 BasedOnStyle
也没有找到答案。鉴于 ClangFormat 来自 LLVM 项目,此选项默认为 LLVM
并不奇怪,但假设此选项有一个似乎不清楚的默认值。
鉴于 SO 上似乎还没有针对此问题的问答,并且猜测其他人也对此感到疑惑或将对此感到疑惑,我想我 post 问题和答案我终于找到了(遗憾的是只有在查看源代码之后)...
在clang/include/clang/Format/Format.h
file, and also in the RawStringFormats
section of the clang/docs/ClangFormatStyleOptions.rst
文件的注释中,是下面这句话:
If 'BasedOnStyle' is not found, the formatting is based on llvm style.
这让我回到了我在问题中提到的 Clang 12 的 CLANG-FORMAT STYLE OPTIONS 文档,我意识到这些信息一直存在。它只是不在 BasedOnStyle
部分,但令人困惑的是在 RawStringFormats
.
此外,对 clang-format-configurator 的测试似乎证实了默认 BasedOnStyle
值确实是 LLVM
并且 运行 clang-format --dump-config | grep BasedOnStyle
显示:
# BasedOnStyle: LLVM
我也很好奇它是如何工作的。
以下两行代码,在我看来,解释了一切:
const char *DefaultFormatStyle = "file";
const char *DefaultFallbackStyle = "LLVM";
来源:https://github.com/llvm/llvm-project/blob/main/clang/lib/Format/Format.cpp#L2942-L2944
初始化 Style
和 FallbackStyle
变量时,这些值将用于 ClangFormat.cpp
文件。
来源:https://github.com/llvm/llvm-project/blob/main/clang/tools/clang-format/ClangFormat.cpp#L62-L66
尽管文档指出样式配置需要通过 --style
选项显式传递,但 clang-format
在直接调用时有效。
# File is formatted with default configuration
# or with options from the ".clang-format` file, if present.
clang-format -i <file>