如何配置clang-format避免列表初始化元素被合并打包?
解决clang-format合并map初始化元素的问题
要让clang-format只处理缩进、不把map的初始化元素合并到同一行,你需要在.clang-format文件中添加以下配置项:
Language: Cpp IndentWidth: 4 # 禁用列宽限制,避免为了压缩行数合并元素 ColumnLimit: 0 # 关闭C++11初始化列表的紧凑格式,保持每个元素单独一行 Cpp11BracedListStyle: false
修改后重新格式化代码,就能得到符合预期的结果:
map<string, unsigned> register_dictionary = { {"r0", 0}, {"r1", 1}, {"r2", 2}, {"r3", 3}, {"r4", 4}, {"r5", 5}, {"r6", 6}, {"r7", 7}, {"r8", 8}, {"r9", 9}, {"r10", 10}, {"r11", 11}, {"r12", 12}, {"r13", 13}, {"r14", 14}, {"r15", 15}, };
关键配置的作用:
ColumnLimit: 0:取消列宽限制,clang-format不会因为代码长度超过阈值就把多个元素挤到同一行。Cpp11BracedListStyle: false:改变C++11风格初始化列表的格式化逻辑,强制每个列表元素单独占一行,保留你原本的换行结构。
内容的提问来源于stack exchange,提问作者mouse_00
相关产品推荐
相关产品推荐

