Ser*_*run 25 clang clang-format
我无法弄清楚是否可以将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);
Run Code Online (Sandbox Code Playgroud)
到目前为止,我已经得出结论,使用clang-format 3.4不可能做到这一点.这是对的吗?
在较新版本的clang格式中,现在可以通过以下方式实现:
AlignAfterOpenBracket: AlwaysBreak
BinPackArguments: false
BinPackParameters: false
Run Code Online (Sandbox Code Playgroud)
有关这些选项的完整说明,请参阅https://clang.llvm.org/docs/ClangFormatStyleOptions.html.
不幸的是,我只能访问clang-format3.8.0 (" clang-format version 3.8.0 (tags/RELEASE_380/final)"),因此我无法轻松测试 3.4 版本。
clang-format这里有一份最新版本的手册,我不知道你是否找到了。它链接到Clang-Format Style Options列表。在那里,有一个样式选项与您的问题的标题相呼应:AlignAfterOpenBracket: AlwaysBreak,如果参数不适合单行,则始终在开括号后断开。
要使用它,请将以下内容放入您的~/.clang-format文件中:
AlignAfterOpenBracket: AlwaysBreak\nRun Code Online (Sandbox Code Playgroud)\n\n经过一些测试,它似乎几乎完全按照您希望的方式进行。
\n\n它格式化
\n\nSomeCall(aaa, bbb, ccc);\nRun Code Online (Sandbox Code Playgroud)\n\n作为
\n\nSomeCall(\n aaa, bbb,\n ccc);\nRun Code Online (Sandbox Code Playgroud)\n\nifaaa, bbb, ccc不适合放在一行中。它不会在 和 之间中断aaa,bbb直到aaa也太长,在这种情况下bbb和ccc将位于同一行。即它在开始后中断(,但随后尝试填充行。它不会自动中断所有逗号。
查看3.4的相应页面clang-format,遗憾的是似乎没有此配置选项。这给您留下了两个选择:
clang-format.| 归档时间: |
|
| 查看次数: |
2001 次 |
| 最近记录: |