我正在使用
Allman
样式大括号包装的 C++ 代码库中工作。 (大括号放在自己的行上。)尽管将 AllowShortLambdasOnASingleLine
设置为 true
,clang-format
仍然坚持以一种奇怪的方式将短 lambda 分成两行。
.clang-format
:
AllowShortLambdasOnASingleLine: true
BreakBeforeBraces: Allman
ColumnLimit: 0
IndentWidth: 4
Standard: c++17
clang-format
输出:
int main()
{
auto shorter = []()
{ return 5; };
auto longer = []()
{
int i = 5;
return i;
};
}
我尝试摆弄
Custom
BreakBeforeBraces
设置,但我得到了完全相同的结果。
AllowShortLambdasOnASingleLine: true
BraceWrapping:
AfterFunction: true
BeforeLambdaBody: true
BreakBeforeBraces: Custom
ColumnLimit: 0
Standard: c++17
IndentWidth: 4
我是否缺少设置?我无法想象有人真的喜欢在这样的两行上看到短的 lambda。
这对我有用:
BreakBeforeBraces: Allman
AllowShortLambdasOnASingleLine: false
最终格式化如下:
auto test = []()
{
int a = 0;
++a;
}