我遇到了有关clang格式的问题:
我要强制执行的是,始终将块开头的括号附加到函数头/控制序列上。
这意味着
int f()
{
return 1;
}
要么
if(o < 1)
{
return -1;
}
clang-format
应该总是这样附上左括号:int f() {
return 1;
}
和
if(o < 1) {
return -1;
}
虽然这在第一种情况下有效(函数头和花括号之间没有换行符),但是如果函数头/
if
等之间存在换行符,则它不起作用。我没有找到强制执行此操作的
clang-format
选项。最接近我要寻找的选项是
BreakBeforeBraces: Attach
,但这也无法正确格式化第二种情况。使用此选项以及BraceWrapping
下的选项也无法解决该问题。有没有一种方法可以配置
clang-format
来连接行,例如左方括号总是终止于它们之前的最后一行代码的末尾?我玩过像https://clangformat.com/或http://cf.monofraps.net/这样的在线配置器,但是找不到满足我需要的选项集。
我目前使用的是clang格式的3.8版。
最佳答案
您可以使用:
MaxEmptyLinesToKeep: 0
这将导致删除空行,然后将大括号格式化为您要求的格式。但是,我希望这对您不是一个很好的解决方案,因为它将删除所有空行,而不仅是大括号前的空行。
除此之外,我认为使用clang格式6.0.0不可能做到这一点。我也不认为它是在较新版本中添加的-documentation中似乎没有与此相关的内容。
关于c++ - 如果有换行符,则 clang-format 将不会附加大括号,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/51949111/