Удалить разрыв строки после одиночного оператора, если в формате clang - PullRequest
2 голосов
/ 18 марта 2020

Я пытаюсь заставить clang-формат оставить операторы 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
}

Кажется, что ни один из параметров, связанных с пробелом, не соответствует этому стилю.

текущая конфигурация:

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

Ответы [ 2 ]

3 голосов
/ 18 марта 2020

Соответствующий параметр конфигурации: AllowShortIfStatementsOnASingleLine.

. Возможны следующие варианты:

  • Never
  • WithoutElse
  • Always

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

2 голосов
/ 18 марта 2020
AllowShortIfStatementsOnASingleLine

И

AllowShortBlocksOnASingleLine

Первый делает то, что вы хотите, AllowShortBlocksOnASingleLine также разрешит код, такой как

if (expression) { Something(); }
...