拆分参数而不是声明

splitting parameters rather than declaration

我正试图让 clang-format 执行我的命令,但在一点上绊倒了。我希望我的 C 函数声明格式为:

sensor_t *sensor_enable_alarm(sensor_t *sensor, 
                              float lo_thresh, 
                              float hi_thresh);

但是根据我当前的设置,clang-format 想要将其格式化为:

sensor_t *
sensor_enable_alarm(sensor_t *sensor, float lo_thresh, float hi_thresh);

我已经通过以下方式从 llvm 初始化了我的 .clang 格式:

clang-format -style=llvm -dump-config > .clang-format

并仅将 BinPackParameters 修改为 false:

BinPackParameters: false

我需要对 .clang 格式进行哪些额外调整?

这可以通过将 PenaltyReturnTypeOnItsOwnLine 设置为更大的值来实现。 LLVM 样式的默认值为 60。试试 200,这是 GoogleMozillaChromium 样式的默认值。

例如,clang-format -style='{BasedOnStyle: LLVM, BinPackParameters: false, PenaltyReturnTypeOnItsOwnLine: 200}' yourfile.cpp 给出此输出:

sensor_t *sensor_enable_alarm(sensor_t *sensor,
                              float lo_thresh,
                              float hi_thresh);

与往常一样,请参阅 documentation 了解更多信息。然而,不幸的是,对于“惩罚”值的解释确实不多。