如何防止clang格式在流运算符调用之间添加换行符<<

How to prevent clang-format from adding newlines between stream operator calls <<

本文关键字:lt 之间 添加 换行符 调用 运算符 clang 何防止 格式      更新时间:2023-10-16

我们目前正在使用clang-format格式化我们的代码库。我们发现,如果存在两个连续的字符串文字,则由于某种原因,std::cout的流运算符被移动到下一行。将变量放在两个字符串文字之间会导致clang格式不会更改格式。.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

错误报告链接:https://bugs.llvm.org/show_bug.cgi?id=45018