clang-format:如何改变换行符的行为

clang-format: how to change behavior of line break

使用 clang-format,我想要这样的结果:

  value = new MyClass(variable1, variable2, mystring + "test",
                      another_variable);

但我不想要下面的结果:

  value =
      new MyClass(variable1, variable2, mystring + "test", another_variable);

我该怎么办?

您可以在 .clang-format 文件 (How do I specify a clang-format file?) 中尝试以下参数:

AlignOperands: true
PenaltyBreakAssignment: 21
PenaltyBreakBeforeFirstCallParameter: 1
  • AlignOperands:您想在换行符后对齐操作数(如下面对齐 another_variable
  • PenaltyBreakAssignment21 因为是适合您情况的最短值(您有可用的操场 here
  • PenaltyBreakBeforeFirstCallParameter:正如documentation所描述的:调用后中断函数调用的惩罚(.,所以它应该大于0.

您可以了解更多关于 clang-format 的处罚:In clang-format, what do the penalties do?

另一个相关且有见地的答案:


PS: 考虑在 C++ 中使用智能指针 ;)