如何使 clang-format 在使用 require 子句打开函数大括号之前不添加新行?

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

当我使用 Clang-format 自动格式化时,当需要子句存在时,它总是在大括号之前插入换行符。

这个

constexpr auto size() const noexcept
  requires(!Unique) {
    return stdr::fold_left(views | stdv::transform(stdr::size), 0, std::plus<int>{});
}

变成这样了

constexpr auto size() const noexcept
  requires(!Unique)
{
    return stdr::fold_left(views | stdv::transform(stdr::size), 0, std::plus<int>{});
}

如何避免?

我已经尝试过了

RequiresClausePosition: WithPreceding
BraceWrapping:
  AfterClass:      false
  AfterControlStatement: false
  AfterEnum:       false
  AfterFunction:   false
  AfterNamespace:  false
  AfterObjCDeclaration: false
  AfterStruct:     false
  AfterUnion:      false
  BeforeCatch:     false
  BeforeElse:      false
  IndentBraces:    false
BreakBeforeBraces: Custom

但这些不起作用。

c++ visual-studio-code clang coding-style clang-format
1个回答
1
投票

看起来你想要

RequiresClausePosition: SingleLine
:

RequiresClausePosition: SingleLine

如果可能的话,尝试将所有内容放在同一行。否则正常的换行规则将被接管。

带有

ColumnLimit: 80
的示例:

constexpr auto size() const noexcept requires(!Unique) {
    return stdr::fold_left(views | stdv::transform(stdr::size), 0,
                           std::plus<int>{});
}
© www.soinside.com 2019 - 2024. All rights reserved.