仅当当前行溢出clang格式时才在新行上括起来

时间:2017-12-04 18:39:09

标签: c++ formatting curly-braces clang-format google-style-guide

我最近决定在我的C ++项目中包含一个.clang-format文件,以使代码更加统一且易于阅读。我主要喜欢谷歌的默认设置,除了我想使用4个空格缩进而不是两个。

这个问题是当当前行溢出80个字符的列限制时,它会使某些语句更难读。例如,在溢出的if语句中:

if (some_condition || some_other_condition ||
    yet_another_condition) {
    // block starts here
}

yet_another_condition的对齐方式与if-block开头的对齐方式相匹配,这使得在没有某种中断的情况下难以阅读。理想情况下,在这种情况下我想要发生的事情是这样的:

if (some_condition || some_other_condition ||
    yet_another_condition)
{
    // block starts here
}

但是,当前一行溢出到下一个时,我只想在新行上打开大括号,就像上面的例子一样。在所有其他情况下,我想在同一行上打开括号(if / for / while / switch等语句以及函数)。

是否可以在我的.clang-format文件中指定此行为,同时保持其余的Google默认设置不变?

1 个答案:

答案 0 :(得分:0)

clang格式工具允许使用BraceWrapping: Custom指定自定义大括号换行,但它不够灵活,无法了解所需的上下文。

提高可读性的替代解决方案是使用大于4的延续缩进,例如, ContinuationIndentWidth: 8