如何配置clang-format实现函数头的差异化换行规则?
Clang-Format 配置实现目标格式
以下配置可以精准实现你要的两种函数声明格式化规则:
BreakBeforeBraces: Custom BraceWrapping: AfterFunction: true BinPackParameters: false AlignAfterOpenBracket: Align
配置项说明
BreakBeforeBraces: Custom:开启自定义大括号换行逻辑,允许针对不同代码块类型单独设置规则。BraceWrapping: { AfterFunction: true }:规定当函数参数能完全放在同一行时,大括号{单独起一行。BinPackParameters: false:禁用参数打包,只要参数无法在一行容纳,就强制每个参数单独占一行。AlignAfterOpenBracket: Align:让换行后的参数与左括号后的第一个字符对齐,匹配你给出的示例缩进风格。
效果验证
- 参数无需换行时:
void foo(int a, int b) { // 函数体内容 }
- 参数需要换行时:
void foo( int a, int long_parameter_name_causing_line_wrap, int b ) { // 函数体内容 }
内容的提问来源于stack exchange,提问作者Moritz
相关产品推荐
相关产品推荐

