如何禁用长 for 语句的中断缩进?

how to disable break indent of a long for-statement?

    for(my_struct_t *s = users; s != NULL; s = (my_struct_t *)(s->hh.next)) {
        printf("%d\t%s\n", s->id, s->name);
    }

以上代码通过以下命令缩进如下样式。我想保留原来的风格,以便 for 语句始终在同一行。在 clang-format 中有没有办法做到这一点?

$ clang-format -style='{IndentWidth: 8, UseTab: Always, SpaceBeforeParens: Never, IndentCaseLabels: true }'
    for(my_struct_t *s = users; s != NULL;
        s = (my_struct_t *)(s->hh.next)) {
        printf("%d\t%s\n", s->id, s->name);
    }

如果 for 语句保留在一行中,那么(根据您的输入和样式选项)该行会延伸到第 81 列。默认情况下 ColumnLimit 是 80。所以您可以执行以下操作之一:

  • ColumnLimit 设置为 81 或更大
  • ColumnLimit设置为0(表示由于列数限制,不应断行)
  • // clang-format on// clang-format off 包围 for 语句以禁用格式
  • clang-formatfor 语句分成多行。

有关 ColumnLimit 的更多详细信息,请参阅 documentation