如何防止 clang-format 在流运算符调用之间添加换行符 <<
How to prevent clang-format from adding newlines between stream operator calls <<
我们目前正在使用 clang-format
格式化我们的代码库。我们发现了一种情况,如果存在两个连续的字符串文字,由于某种原因 std::cout
的流运算符被移动到下一行。在两个字符串文字之间放置一个变量会导致 clang-format 不更改格式。需要在 .clang-format
文件中更改什么才能避免这种情况?
int main()
{
std::cout << "something" << "something" << std::endl;
}
变成
int main()
{
std::cout << "something"
<< "something" << std::endl;
}
而
int main()
{
int a = 0;
std::cout << "something" << a << "something" << std::endl;
}
保持不变。
请注意,虽然最后一个代码段更宽,但它 不是 分成多行,而上面的较短代码段是。
这是 LLVM 9.0.0 Windows 安装程序,可以使用默认配置文件重现。
无法通过 .clang-format
文件更改此行为,因为它是代码的一部分。
此提交中引入了此行为:
https://github.com/llvm-mirror/clang/commit/df28f7b8dd6a032515109de4ff5b4067be95da8e
我们目前正在使用 clang-format
格式化我们的代码库。我们发现了一种情况,如果存在两个连续的字符串文字,由于某种原因 std::cout
的流运算符被移动到下一行。在两个字符串文字之间放置一个变量会导致 clang-format 不更改格式。需要在 .clang-format
文件中更改什么才能避免这种情况?
int main()
{
std::cout << "something" << "something" << std::endl;
}
变成
int main()
{
std::cout << "something"
<< "something" << std::endl;
}
而
int main()
{
int a = 0;
std::cout << "something" << a << "something" << std::endl;
}
保持不变。 请注意,虽然最后一个代码段更宽,但它 不是 分成多行,而上面的较短代码段是。
这是 LLVM 9.0.0 Windows 安装程序,可以使用默认配置文件重现。
无法通过 .clang-format
文件更改此行为,因为它是代码的一部分。
此提交中引入了此行为: https://github.com/llvm-mirror/clang/commit/df28f7b8dd6a032515109de4ff5b4067be95da8e