【问题标题】:Is there a way to configure clang-format to keep nested namespace declarations on the same line?有没有办法配置 clang-format 以将嵌套的命名空间声明保持在同一行?
【发布时间】:2015-12-31 04:24:00
【问题描述】:

在我工作的代码库中,我们总是这样声明嵌套的命名空间:

namespace foo { namespace detail {

// stuff

} }  // foo::detail namespace

我还没有找到一种方法来配置clang-format 将其分成多行:

namespace foo {
namespace detail {

// stuff

}
}  // foo::detail namespace

我玩过BreakBeforeBraces 配置,并且我在clang 3.8 中查看了新的BraceWrapping 配置,都没有成功。

是否可以在不使用// clang-format [on/off] 注释代码的情况下做到这一点?

【问题讨论】:

  • (在C++17中,你可以说namespace foo::detail {。)
  • 如果clang-format 这样做会很好,如果detailfoo 中唯一的东西。 (这就是我来这里的原因)
  • clang-format 不会将嵌套命名空间重写为带有 :: 的单个复杂 id,但如果您可以使用 C++17,您可以自己完成。

标签: c++ clang-format


【解决方案1】:

原来这是clang-format团队考虑过的一个特性,但是被拒绝了。有关其他详细信息,请参阅https://llvm.org/bugs/show_bug.cgi?id=17928

【讨论】:

  • 将新答案标记为正确,因为这个答案已过时。
【解决方案2】:

clang-format 6.0 具有“CompactNamespaces: true”选项,可以满足您的要求。见http://clang.llvm.org/docs/ClangFormatStyleOptions.html

【讨论】:

    猜你喜欢
    • 2016-12-23
    • 1970-01-01
    • 1970-01-01
    • 2020-03-15
    • 1970-01-01
    • 2016-06-23
    • 2013-01-10
    • 1970-01-01
    相关资源
    最近更新 更多