如果使用 clang 格式,则在单语句后删除换行符

Remove line break after single-statement if with clang-format

我正在尝试让 clang-format 在同一行留下 if 语句和一个语句。

示例输入:

if(is_finished) break;
if(foo) {
    // do something
}

clang 格式输出:

if(is_finished)
    break;
if(foo) {
    // do something
}

想要的输出:

if(is_finished) break;
if(foo) {
    // do something
}

None 的 space 相关选项似乎符合这种风格。

当前配置:

---
Language: Cpp 
BasedOnStyle: LLVM
IndentWidth: 8
UseTab: ForIndentation
SpaceBeforeParens: Never
BraceWrapping:
  AfterControlStatement: false

相关的配置选项是AllowShortIfStatementsOnASingleLine

选项是:

  • Never
  • WithoutElse
  • Always

https://clang.llvm.org/docs/ClangFormatStyleOptions.html

AllowShortIfStatementsOnASingleLine

AllowShortBlocksOnASingleLine

第一个做你想做的,AllowShortBlocksOnASingleLine 也将允许

这样的代码
if (expression) { Something(); }