如何让clang-format对齐连续赋值但不对齐纯虚函数的=0标记?
实现clang-format对齐变量赋值但不对齐纯虚函数
=0的方法 针对clang-format 14及以上版本
新版clang-format已经能准确区分变量初始化的赋值运算符和纯虚函数的=0标记,只需在你的.clang-format配置文件中开启连续赋值对齐即可:
Language: Cpp AlignConsecutiveAssignments: true # 匹配你示例中的缩进宽度,可根据自身需求调整 IndentWidth: 3
用这个配置格式化代码后,就能得到你想要的效果:
class A { virtual void a() = 0; virtual void aaaaaaaaaa() = 0; // 不会对齐=0标记 int b = 0; int bbbbb = 0; // 变量赋值自动对齐 };
针对clang-format 13及以下版本
旧版clang-format会把纯虚函数的=0误判成普通赋值操作,导致它也被对齐。这种情况下,可以用// clang-format off和// clang-format on指令跳过纯虚函数段的格式化,只让clang-format处理变量区域:
class A { // clang-format off virtual void a() = 0; virtual void aaaaaaaaaa() = 0; // clang-format on int b = 0; int bbbbb = 0; };
格式化后变量部分会自动对齐,纯虚函数部分保持你编写的原样。
内容的提问来源于stack exchange,提问作者Serge
相关产品推荐
相关产品推荐

