首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >clang-format:如果参数不匹配,总是中断?

clang-format:如果参数不匹配,总是中断?
EN

Stack Overflow用户
提问于 2014-02-23 17:37:29
回答 2查看 4.2K关注 0票数 29

我不知道是否可以将clang-format配置为在参数不匹配时总是中断,例如:

代码语言:javascript
复制
// 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是不可能做到这一点的。这是正确的吗?

EN

回答 2

Stack Overflow用户

发布于 2017-11-03 21:32:17

在较新版本的clang-format中,这现在可以通过以下方式实现:

代码语言:javascript
复制
AlignAfterOpenBracket: AlwaysBreak
BinPackArguments: false
BinPackParameters: false

有关这些选项的完整解释,请参阅https://clang.llvm.org/docs/ClangFormatStyleOptions.html

票数 10
EN

Stack Overflow用户

发布于 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文件中放入以下内容:

代码语言:javascript
复制
AlignAfterOpenBracket: AlwaysBreak

经过一些测试后,它看起来几乎就是您想要它做的事情。

It格式

代码语言:javascript
复制
SomeCall(aaa, bbb, ccc);

作为

代码语言:javascript
复制
SomeCall(
  aaa, bbb,
  ccc);

如果aaa, bbb, ccc不能放在一行上。它不会在aaabbb之间中断,直到aaa也太长,在这种情况下,bbbccc将在同一行上。例如,它在打开的(之后中断,但随后尝试填充各行。它不会在所有逗号上自动换行。

看看clang-format 3.4的corresponding page,似乎没有这个配置选项。这给您留下了两个选择:

升级到较新版本的clang-format.

  • Don't.

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21966530

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档