C++格式化单行花括号内的语句

3

我们团队的惯例是使用大括号来包裹条件和循环语句,并在开始大括号之前换行,但对于单行语句,我们不在大括号之间添加换行符。例如:

if( condition )
{ doIt(); }

我们使用clang-format来自动格式化代码,但据我所知,这并不是clang-format可以处理的约定。结果是,我必须非常小心,不要自动格式化整个源文件,否则我就必须修复每一个单行的ifelsefor等等。我发现自己一遍又一遍地撤销同一源文件中的相同自动格式化的行。
我刚开始使用CLion,可以很容易地设置其默认格式以匹配我们使用clang-format的方式,但我仍然无法弄清楚如何匹配我们的括号包围单行约定。
是否有办法告诉CLion或clang-format去做到这一点呢?明显的解决方案是要么完全避免自动格式化,要么说服我的团队采用更容易适应的约定,但两者都不是选项(他们是一个非常挑剔的团伙,对代码风格有着非常坚定的意见)。

2
作为一个旁注,我讨厌它。但是惯例存在是有原因的。一旦它们被确立,通常很难撤销它们。 :-( - Martin York
1
我也讨厌这种约定。如果你的团队对编码规范有如此强烈的意见,他们应该注意到在这种情况下,他们正在强制执行一种在任何地方都不常用的风格。结果,人们会发现阅读代码更加困难。更糟糕的是,它将开始污染其他代码库,因为被迫使用这种风格的人不可避免地会在个人代码或其他项目中习惯性地使用它。 - paddy
1个回答

0
  • 在CLion本地格式化程序中,您无法遵循

    if( condition )
    { doIt(); }

    的约定,抱歉。

  • CLion支持开箱即用的clang-format


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接