c++ 如何将复杂赋值表达式中的lambda缩进4个空格

yqlxgs2m  于 2023-02-20  发布在  其他
关注(0)|答案(1)|浏览(150)

我有一个赋值表达式,如下所示(格式为clang-format):

auto typeParams = node->typeParams | std::views::transform([&](auto p) {
                      return m_irCtx.make(IRGenericType(p));
                  });

我想有它的格式如下:

auto typeParams = node->typeParams | std::views::transform([&](auto p) {
    return m_irCtx.make(IRGenericType(p));
});

哪一个.clang-format选项控制了lambda相对于父作用域的缩进方式?我怎样才能做到这一点?
编辑:将LambdaBodyIndentation设置为OuterScope不会更改任何内容

mrzz3bfm

mrzz3bfm1#

在这个特定的例子中(如果是唯一的例子或者只是少数几个例子中的一个),我只需要手工格式化:

// clang-format off
auto typeParams = node->typeParams | std::views::transform([&](auto p) {
    return m_irCtx.make(IRGenericType(p));
});
// clang-format on

是的,这是作弊。如果你对Clang格式的功能满意,但你不能配置它做任何事情,那么Clang格式的工作相当不错。在这种情况下,你可以关闭自动化功能,手动操作。
看一下这段代码,我会说右大括号和圆括号至少应该缩进一级。但是,我知道什么呢?如果你想这样写,就这样写,不要让clang格式碰到它。

相关问题