通过 clang-format 用换行分隔大括号列表的每个条目
Separate each entry of brace-enclosed lists with new-line via clang-format
我用大括号括起来的列表来初始化数组。我想让我的数组初始值设定项为数组的每个条目换行,看起来像:
const char* const array_of_strings[] = {
"Hey",
"Hi",
"Hello",
"Soup",
"Atom"
};
尽管如此,clang-format 将此数组格式化为:
const char *const array_of_strings[] = {"Hey", "Hi", "Hello", "Soup", "Atom"};
通常是列表超过 ColumnLimit 后的新衬里。我想要的格式可以使用 clang-format 吗?
很有可能。你需要两件事:
- 将
BinPackArguments
样式选项设置为 false
。我猜想 clang-format 将 brace-enclosed 初始值设定项列表视为参数。 (documentation 并没有真正说明这一点,但它似乎是合理的。)
- 使用comma-after-last-item功能。为此,在“Atom”和右大括号之间添加一个逗号。这个功能在我见过的任何地方都没有记录,但它已经在 clang-format 许多版本和很多年了。
使用以上两种设置,否则默认 clang-format 设置,您的输出将如下所示:
const char *const array_of_strings[] = {
"Hey",
"Hi",
"Hello",
"Soup",
"Atom",
};
我用大括号括起来的列表来初始化数组。我想让我的数组初始值设定项为数组的每个条目换行,看起来像:
const char* const array_of_strings[] = {
"Hey",
"Hi",
"Hello",
"Soup",
"Atom"
};
尽管如此,clang-format 将此数组格式化为:
const char *const array_of_strings[] = {"Hey", "Hi", "Hello", "Soup", "Atom"};
通常是列表超过 ColumnLimit 后的新衬里。我想要的格式可以使用 clang-format 吗?
很有可能。你需要两件事:
- 将
BinPackArguments
样式选项设置为false
。我猜想 clang-format 将 brace-enclosed 初始值设定项列表视为参数。 (documentation 并没有真正说明这一点,但它似乎是合理的。) - 使用comma-after-last-item功能。为此,在“Atom”和右大括号之间添加一个逗号。这个功能在我见过的任何地方都没有记录,但它已经在 clang-format 许多版本和很多年了。
使用以上两种设置,否则默认 clang-format 设置,您的输出将如下所示:
const char *const array_of_strings[] = {
"Hey",
"Hi",
"Hello",
"Soup",
"Atom",
};