如何获得 clang 格式以允许带有 Allman 缩进的单行 lambda?

问题描述 投票:0回答:1

我正在使用

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。

lambda clang-format
1个回答
0
投票

这对我有用:

BreakBeforeBraces: Allman
AllowShortLambdasOnASingleLine: false

最终格式化如下:

auto test = []()
    {
        int a = 0;
        ++a;
    } 
© www.soinside.com 2019 - 2024. All rights reserved.