clang-format:不要在字符串和 << 运算符之间中断

Mir*_*ode 5 c++ clang-format

我的 C++ 代码中有以下行:

std::cout << "done" << "\n";
Run Code Online (Sandbox Code Playgroud)

clang-format 会进入哪个

std::cout << "done"
          << "\n";
Run Code Online (Sandbox Code Playgroud)

无论。我编辑了以“Break”或“Align”开头的每个选项:

AlignAfterOpenBracket: DontAlign
AlignArrayOfStructures: None
AlignConsecutiveMacros: 'false'
AlignConsecutiveAssignments: 'false'
AlignConsecutiveBitFields: 'false'
AlignConsecutiveDeclarations: 'false'
AlignEscapedNewlines: DontAlign
AlignOperands:   DontAlign
AlignTrailingComments: 'false'

BreakBeforeBinaryOperators: None
BreakBeforeConceptDeclarations: false
BreakBeforeBraces: Attach
BreakBeforeInheritanceComma: false
BreakInheritanceList: AfterComma
BreakBeforeTernaryOperators: false
BreakConstructorInitializersBeforeComma: false
BreakConstructorInitializers: AfterColon
BreakStringLiterals: false
Run Code Online (Sandbox Code Playgroud)

我怎样才能让它不这样做呢?版本是14.0.0

Jan*_*tke 6

clang-format 总是错误地将连续的内容<< "string"放在单独的行上。这是一个已知错误,于 2020 年 2 月首次报告。

您的配置适用于以下语句:

// This doesn't get split over multiple lines;
// it only happens if the column limit is exceeded.
int x = 1 << 2 << 3;
Run Code Online (Sandbox Code Playgroud)

通常,仅当行太长时:

但是,当 a<<后面跟着字符串文字时,无论如何,clang-format 都会将其放在单独的行上。