如何通过clang-format实现Lambda仅大括号换行的排版?
实现Lambda大括号单独换行的clang-format配置
clang-format默认的BeforeLambdaBody参数仅提供两种Lambda排版方案,但通过组合其他配置项可以实现你需要的效果:
- 设置
BeforeLambdaBody: false,让Lambda的[]()部分与函数调用保持在同一行 - 在
BraceWrapping配置下开启LambdaBody: true,强制将Lambda的大括号单独换行
对应的.clang-format配置片段如下:
BeforeLambdaBody: false BraceWrapping: LambdaBody: true
应用该配置后,代码会被格式化为你想要的样式:
connect([]() { foo(); bar(); });
注意:该配置要求clang-format版本支持BraceWrapping.LambdaBody参数,LLVM 10及以上版本通常已包含此特性。
内容的提问来源于stack exchange,提问作者cambalamas
相关产品推荐
相关产品推荐

