我不知道是否可以将clang-format配置为在参数不匹配时总是中断,例如:
// Try this first:
SomeCall(aaa, bbb, ccc);
// If doesn't fit, try this:
SomeCall(
aaa, bbb, ccc);
// If still doesn't fit, do NOT try this:
SomeCall(aaa, bbb,
ccc);
// and NOT this:
SomeCall(aaa,
bbb,
ccc);
// but immediately do this:
SomeCall(
aaa,
bbb,
ccc);到目前为止,我得出的结论是,使用clang-format 3.4是不可能做到这一点的。这是正确的吗?
发布于 2017-11-03 21:32:17
在较新版本的clang-format中,这现在可以通过以下方式实现:
AlignAfterOpenBracket: AlwaysBreak
BinPackArguments: false
BinPackParameters: false有关这些选项的完整解释,请参阅https://clang.llvm.org/docs/ClangFormatStyleOptions.html。
发布于 2016-06-21 00:48:03
不幸的是,我只能访问clang-format 3.8.0 ("clang-format version 3.8.0 (tags/RELEASE_380/final)"),所以我不能轻松地为3.4版本进行测试。
我不知道你是否找到了最新版本的clang-format可用here的手册。它链接到Clang-Format Style Options列表。在这里,有一个样式选项,它与问题的标题相呼应:AlignAfterOpenBracket: AlwaysBreak,如果参数不能放在一行中,则始终在左方括号后换行。
要使用它,请在~/.clang-format文件中放入以下内容:
AlignAfterOpenBracket: AlwaysBreak经过一些测试后,它看起来几乎就是您想要它做的事情。
It格式
SomeCall(aaa, bbb, ccc);作为
SomeCall(
aaa, bbb,
ccc);如果aaa, bbb, ccc不能放在一行上。它不会在aaa和bbb之间中断,直到aaa也太长,在这种情况下,bbb和ccc将在同一行上。例如,它在打开的(之后中断,但随后尝试填充各行。它不会在所有逗号上自动换行。
看看clang-format 3.4的corresponding page,似乎没有这个配置选项。这给您留下了两个选择:
升级到较新版本的clang-format.
的
https://stackoverflow.com/questions/21966530
复制相似问题