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

nhaq1z21  于 2023-04-29  发布在  其他
关注(0)|答案(1)|浏览(113)

我在一家有特定大括号缩进要求的公司工作。2个空格用于函数的大括号中的制表符,并且一对大括号中的第一个总是在它自己的行中找到。Clang-format处理得很好。
然而,像if和while这样的语句有一些非常独特的规则。

  • 1个空格用于从if语句的大括号对到代码的缩进。
  • 如果没有“else”语句,大括号从第一个“if”缩进一个空格,如果有“else”语句,则缩进两个空格。
  • Else从第一个“if”缩进一个空格。

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

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

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

我不认为clang-format默认支持这一点。有没有什么方法可以在clang-format中添加复杂的自定义规则,以格式化具有这些类型的需求的文档?

hi3rlvi2

hi3rlvi21#

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

相关问题