【问题标题】:What is good way to achieve formatting via clang-format?通过 clang-format 实现格式化的好方法是什么?
【发布时间】:2016-07-11 01:55:19
【问题描述】:

全部

格式化 C++ 代码,对 clang-format 产生的结果感到相当满意,除了两件事:

如何使冒号与构造函数位于同一行?而不是

Detector::Detector()
     : _LogicTarget{nullptr},

我想买

Detector::Detector():
    _LogicTarget{nullptr},

第二个问题,我可以在访问修饰符后删除break吗?

public:
    void f();

应该是

public: void f();

【问题讨论】:

  • 你试过其他格式吗? clang-format 手册至少显示了 4 种其他格式……也许其中一种可以满足您的需要。第二个问题 - 手册上说了什么?
  • @DOUGLASO.MOEN Have you tried other formats? 其他格式是什么意思?我已经抛弃了 WebKit 并对其进行了破解。 Wrt Q2 似乎答案是no,访问修饰符没有中断选项
  • @SeverinPappadeux 来自“Clang 3.9 文档,Clang 格式样式选项”,1) LLVM A 符合 LLVM 编码标准的样式 2) Google A 符合 Google 的 C++ 样式指南的样式 3) Chromium A 样式符合 Chromium 的样式指南 4) Mozilla 符合 Mozilla 样式指南的样式 5) WebKit 符合 WebKit 样式指南的样式。看起来你可以从其中一个开始,然后触摸它。也许我偶然发现了一些无关的东西。对不起。
  • 关于你的第一个问题:在冒号之前没有不中断的选项(或者我真的错过了一些东西)。这是使我无法使用 clang-format 的唯一原因,因此我查看了代码并添加了一个选项以将冒号保持在同一行。我没有将它作为补丁提交,因为它可能无法与其他选项很好地配合,但它为我完成了工作。如果您有兴趣,我可以将其发布为答案。

标签: c++ formatting clang-format


【解决方案1】:

你可以通过设置来做到这一点

AllowAllConstructorInitializersOnNextLine : true

然后输出将是

Detector::Detector():
    _LogicTarget{nullptr}

public: void f();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-09-08
    • 2014-04-07
    • 2017-10-30
    • 2019-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多