首页 > 解决方案 > 横幅样式的 Clang 格式

问题描述

我贡献的一个开源项目使用横幅样式(也称为 Ratliff 样式)。它看起来像这样:

 // In C
 for (i = 0; i < 10; i++) {
     if (i % 2 == 0) {
         doSomething(i);
         }
     else {
         doSomethingElse(i);
         }
     }

一些 IDE (如 QtCreator)有自己的格式化配置,但其他 IDE(如 Visual Studio Code)需要.clang 格式文件。

我在网上查找现有配置,但找不到任何配置。然后我尝试使用这个 clang-format generator从头开始​​制作一个,但我无法正确缩进大括号。

那么,是否可以为 Ratliff/Banner 样式创建一个 clang 格式的文件,或者是否有一些缺失的配置会迫使我们使用其他一些生成器?

标签: idecode-formattingclang-format

解决方案


这个答案不会是您正在寻找的“答案”,但这是我在过去两天挖掘 clang-format 代码时发现的。我也一直在寻找一种使用 clang-format 自动格式化横幅样式变体的方法。

clang-format 似乎缺少一些使其能够自动格式化横幅样式的功能。

例如,您需要缩进代码块的结束(右)大括号。clang-format 似乎甚至不跟踪结束大括号,但它确实在其内部跟踪起始(左)大括号。

我开始了我的学习生涯,以为我可以理解 clang-format 实现其格式化程序系统的方式,因此我可以添加所需的功能。可悲的是,这对我来说太复杂了。

也许有一天我们将能够使用 clang-format 自动格式化横幅样式,但不是今天。

如果有人知道这个答案不准确,请不要犹豫,纠正我。

编辑:您可能会发现http://astyle.sourceforge.net很有用,而不是仅仅让您验证使用 clang 格式无法完成的事情。


推荐阅读