如何配置clang-format实现函数调用首行仅含第一个参数?
解决方案
要实现你想要的参数换行格式,只需在现有.clang-format配置中添加并调整两个选项:
- 添加
CallArgumentWrappingStyle: BinPackedExceptFirst:该选项会让第一个调用参数与函数名、左括号保持在同一行,后续参数换行后打包到同一行(只要不超出列限制)。 - 保留
PenaltyBreakBeforeFirstCallParameter: 0:将在第一个参数前换行的惩罚值设为最低,进一步引导clang-format选择在第一个参数后换行。
修改后的完整配置:
BasedOnStyle: Google ColumnLimit: 50 IndentWidth: 4 AlignAfterOpenBracket: DontAlign CallArgumentWrappingStyle: BinPackedExceptFirst PenaltyBreakBeforeFirstCallParameter: 0
应用该配置后,clang-format会输出你期望的格式:
function(aaaaaaaaaaaaa, bbbbbbbbbbbbbbbbbbbbbbbb, cccc);
注意:此方案要求clang-format版本在10及以上,旧版本可能不支持CallArgumentWrappingStyle选项,需升级工具。
内容的提问来源于stack exchange,提问作者Kelvin Hu
相关产品推荐
相关产品推荐

