如何为特定代码段修改clang-format规则?
为代码片段单独修改clang-format特定规则的方法
clang-format支持为特定代码段临时调整单条规则,不需要完全禁用格式化。你可以用// clang-format set <规则名>:<值>的语法,在目标代码块前后分别设置临时规则和恢复原规则,实现精准控制。
针对你想对齐枚举内等号但不影响其他变量赋值的需求,具体操作如下:
- 在枚举块开头添加临时开启连续赋值对齐的注释
- 在枚举结束后添加恢复全局规则的注释(把
<原配置值>换成你全局clang-format里AlignConsecutiveAssignments的实际设置,比如None)
修改后的示例代码:
// 全局规则假设AlignConsecutiveAssignments: None int a = 10; int bbb = 20; // 这里不会对齐等号 enum class Foo { // clang-format set AlignConsecutiveAssignments: Consecutive ABC = 0, X = 1, YYY = 2 // clang-format set AlignConsecutiveAssignments: None }; int c = 30; int ddd = 40; // 这里依然不会对齐等号
注意:这种局部规则修改需要clang-format 10及以上版本支持,旧版本可能不兼容该语法。
内容的提问来源于stack exchange,提问作者Sheldon
相关产品推荐
相关产品推荐

