如何使 clang-format 保持右大括号在同一行

mmj*_*mmj 6 c++ indentation clang-format

基本上我想要获得的缩进样式是维基百科上描述为“Lisp 样式”的样式:

while (x == y) {
    something();
    somethingelse(); }
Run Code Online (Sandbox Code Playgroud)

我正在使用自定义.clang-format文件(版本 3.8),但我找不到任何适合我需要的选项。

提前致谢。

Chr*_*eck 3

clang 格式的源代码非常干净,一旦你掌握了想法,阅读或修改它并不太困难。

这是我一年前制作的一个补丁,在 clang 3.7 中添加了“构造函数初始化列表后大括号前的中断”。(不幸的是,讨论后它没有被合并,但无论如何我一直在自己的项目中使用它。)这不是太多代码:https://github.com/cbeck88/clang/commit/e4f65cf7ab3deea9e6c7cdd5900ad0362835e514

弄清楚如何构建 clang 并运行 clang 单元测试可能与实际制作补丁来执行您所说的操作一样多。

我记得,源代码更多地基于添加中断而不是删除它们,因此具体取决于您想要如何形式化您的想法(这只是控制结构吗?对于 if ?对于结束函数或类的大括号?)它可能很棘手。但我仍然希望你能够让它发挥作用。

据我记得,没有内置选项可以做与您所说的相近的事情。