5

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

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

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

对齐方式yet_another_condition与 if 块开头的对齐方式相匹配,这使得如果没有某种中断就很难阅读。理想情况下,我希望在这种情况下发生的事情是这样的:

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

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

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

4

1 回答 1

0

clang-format 工具允许使用 指定自定义大括号包装BraceWrapping: Custom,但它不够灵活,无法了解您需要的上下文。

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

于 2017-12-06T16:07:46.197 回答