如何用clang-format将C++ vector初始化列表设为逐行格式?
如何用clang-format让vector初始化每个元素单独一行?
要实现每个初始化元素独占一行的格式,你需要修改clang-format的以下配置项,将它们添加到你的.clang-format配置文件中:
# 禁止将初始化列表元素打包成多列 BinPackArguments: false # 让开括号后的元素对齐到开括号的位置 AlignAfterOpenBracket: Align
配置说明:
BinPackArguments: false:这个选项会强制clang-format不在同一行放置多个初始化元素,每个元素都会单独换行。AlignAfterOpenBracket: Align:确保每个换行后的元素都对齐到初始化列表开括号{的起始位置,和你期望的格式完全匹配。
如果你的配置中存在ColumnLimit,只要它的值不小于单个元素的长度,就不会影响这个效果——因为BinPackArguments设为false后,列宽限制会优先让每个元素单独成行。
效果验证:
应用配置后,原来的多列格式:
std::vector<std::string> keys{"aaaaaaaaaa", "bbbbbbbbbbbb", "cccccccccccc", "ddddddddd", "eeeeeeee", "fffffffffff", "ggggggggggg", "hhhhhhhhhh", "iiii", "jjjjjjjjjjjjjjjj", "kkkkkkkkkkkkkkkkkkkkk"};
会被格式化为:
std::vector<std::string> keys{"aaaaaaaaaa", "bbbbbbbbbbbb", "cccccccccccc", "ddddddddd", "eeeeeeee", "fffffffffff", "ggggggggggg", "hhhhhhhhhh", "iiii", "jjjjjjjjjjjjjjjj", "kkkkkkkkkkkkkkkkkkkkk"};
内容的提问来源于stack exchange,提问作者László Vörös
相关产品推荐
相关产品推荐

