如何配置clang-format使C结构体指定初始化器每行一个成员?
配置clang-format让结构体指定初始化器成员单独换行
假设你有如下C语言结构体定义:
struct A { int a; int b; int c; };
当前clang-format会把结构体初始化格式化成单行:
struct A name = {.a = 1, .b = 2, .c = 3};
要实现每个初始化成员单独占一行的效果:
struct A name = { .a = 1, .b = 2, .c = 3 };
只需在你的.clang-format配置文件中添加或修改以下参数:
BasedOnStyle: LLVM Cpp11BracedListStyle: true BreakBeforeBraces: Allman AllowShortBlocksOnASingleLine: false IndentWidth: 4
各参数作用说明:
Cpp11BracedListStyle: 启用C++11风格的大括号列表格式化规则,对C语言的结构体初始化同样生效,会将大括号内的每个成员单独换行BreakBeforeBraces: Allman: 让初始化语句后的左大括号单独占一行,匹配示例中的格式AllowShortBlocksOnASingleLine: false: 禁止将短初始化块压缩到一行,确保即使成员数量少也会分行显示IndentWidth: 控制成员的缩进空格数,这里设为4和示例对齐,可根据个人习惯调整为2或其他值
内容的提问来源于stack exchange,提问作者Gottox
相关产品推荐
相关产品推荐

