c-clang格式的复杂制表符和大括号对齐规则



我在一家有特定大括号缩进要求的公司工作。2个空格用于函数大括号中的制表符,并且一对中的第一个大括号总是位于其自己的行上。Clang格式处理得很好。

然而,像if和whiles这样的语句有一些非常独特的规则。

  • 1个空格用于从if语句的大括号对缩进到代码
  • 括号从第一个"括号"缩进一个空格;如果";如果否;否则";语句存在,如果存在一个,则包含两个空格
  • Else’s从第一个"缩进一个空格;如果">

下面是一个示例,说明了所需的格式:

void func()
{
if (1)
{
// code
}
if (1)
{
// code
}
else if (1)
{
// code
}
else
{
// code
}
}

我不认为clang格式在默认情况下支持这一点。有没有办法将复杂的自定义规则添加到clang格式中,以格式化具有这些类型需求的文档?

https://releases.llvm.org/14.0.0/tools/clang/docs/ClangFormatStyleOptions.html#configurable-格式样式选项

我认为GNU风格应该是你的最佳选择。不同之处在于使用2个空格缩进if子句和循环的分支。您可以从GNU样式继承并覆盖那里的特定设置。

最新更新