函数定义之间的换行符

Pov*_*asB 15 clang-format

有没有办法在函数定义之间自动插入空格.例如我的初始资料来源是:

void
func1()
{
    // func1 body.
}
void
func2()
{
    // func2 body.
}
Run Code Online (Sandbox Code Playgroud)

我希望将其重新格式化为:

void
func1()
{
    // func1 body.
}


void
func2()
{
    // func2 body.
}
Run Code Online (Sandbox Code Playgroud)

如果有更多换行符,则应保留固定数量的换行符.

eja*_*a12 21

正如本答案中提到的clang-format 14,您可以在配置文件中使用以下内容:

SeparateDefinitionBlocks: Always
Run Code Online (Sandbox Code Playgroud)

其他可能的值是Leave,按原样保留定义块的间距,或Never,删除定义块之间的空行。


Kei*_*lly 14

据我所知,目前没有办法强制clang-format在连续函数之间插入空白行,而当前则没有.恕我直言,这是一个巨大的缺失功能.

  • 2020年了还做不到吗? (20认同)
  • 到了2022年还不可能吗? (10认同)
  • @SaeedMasoomi clang-format ≥ 14 是可能的。查看选项 _SeparateDefinitionBlocks_。请参阅文档[此处](https://clang.llvm.org/docs/ClangFormatStyleOptions.html#configurable-format-style-options)。 (7认同)

Nur*_*tin 7

最好的办法是在.clang格式文件中设置'MaxEmptyLinesToKeep:2',让clang格式保持2行不变.