如何用Clang-Format对齐C++中的if语句?
解决Clang-Format 13.0单行if语句大括号对齐问题
若可升级至Clang-Format 14+版本
Clang-Format 14及以上新增了AlignConsecutiveIfStatements选项,专门用于对齐连续单行if语句的大括号。在你的配置中添加以下内容即可实现需求:
# 保留现有配置 AllowShortBlocksOnASingleLine: true AllowShortIfStatementsOnASingleLine: WithoutElse # 新增对齐配置 AlignConsecutiveIfStatements: Enabled: true AcrossEmptyLines: false AcrossComments: false
该配置会自动调整if()右括号与左大括号之间的空格数量,让所有连续单行if的{对齐到同一列。
若必须使用Clang-Format 13.0版本
由于13.0版本没有原生支持单行if大括号对齐的选项,无法仅通过配置实现目标效果,可采用以下两种替代方案:
手动控制格式化区域
在需要对齐的if语句块前后添加注释,禁用Clang-Format对该区域的自动格式化,手动调整空格实现对齐:// clang-format off if (_a) { return; } if (__b) { return; } if (____c) { return; } // clang-format on脚本二次处理
编写简单的Python/Shell脚本,对Clang-Format格式化后的代码进行扫描,识别连续的单行if语句,计算最长的if(...)段长度,自动补充空格使{对齐。
内容的提问来源于stack exchange,提问作者Angelo D'Amante
相关产品推荐
相关产品推荐

