【问题标题】:Prevent clang-format from breaking a line at -> operator防止 clang-format 在 -> 运算符处换行
【发布时间】:2017-06-20 16:25:29
【问题描述】:

以下文件test.cpp

int func() {
   aaaaaaaaaaa = bbbbbbbb->cccccc(SomeNamespace::Function(dddddddd?"eeeeeeeee":"fffffffffff")).gggggggggg();
}

clang-format按以下方式格式化(我尝试了不同的样式):

$ for s in LLVM Google Chromium Mozilla WebKit; do clang-format -style="{BasedOnStyle: $s, ColumnLimit: 80}" test.cpp; done
int func() {
  aaaaaaaaaaa = bbbbbbbb
                    ->cccccc(SomeNamespace::Function(dddddddd ? "eeeeeeeee"
                                                              : "fffffffffff"))
                    .gggggggggg();
}
int func() {
  aaaaaaaaaaa = bbbbbbbb
                    ->cccccc(SomeNamespace::Function(dddddddd ? "eeeeeeeee"
                                                              : "fffffffffff"))
                    .gggggggggg();
}
int func() {
  aaaaaaaaaaa = bbbbbbbb
                    ->cccccc(SomeNamespace::Function(dddddddd ? "eeeeeeeee"
                                                              : "fffffffffff"))
                    .gggggggggg();
}
int
func()
{
  aaaaaaaaaaa =
    bbbbbbbb
      ->cccccc(SomeNamespace::Function(dddddddd ? "eeeeeeeee" : "fffffffffff"))
      .gggggggggg();
}
int func()
{
    aaaaaaaaaaa = bbbbbbbb
                      ->cccccc(SomeNamespace::Function(
                          dddddddd ? "eeeeeeeee" : "fffffffffff"))
                      .gggggggggg();
}

我想知道是否有一个选项可以防止clang-format-> 运算符处换行。

【问题讨论】:

    标签: c++ clang-format


    【解决方案1】:

    似乎没有任何选项只影响list of clang-format options 中的operator->,但您始终可以为违规行禁用clang-format

    int func() {
       // clang-format off
       aaaaaaaaaaa = bbbbbbbb->cccccc(SomeNamespace::Function(dddddddd?"eeeeeeeee":"fffffffffff")).gggggggggg();
       // clang-format on
    }
    

    这会完全禁用格式设置,因此如果有问题的行需要其他格式设置规则,则可能需要进行一些手动干预。

    【讨论】:

    • 谢谢@You,但这对我来说不是很有用,因为我正试图完善一个相当大的代码库。
    猜你喜欢
    • 2020-06-06
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-01-03
    • 2018-06-23
    • 2021-09-02
    相关资源
    最近更新 更多