在clang-format运行之前采用这个例子:
struct ApplicationState app_state = {
.signal = {
.use_crash_handler = true,
.use_abort_handler = true,
},
.exit_code_on_error = {
.python = 0,
}
};
运行后,clang-format应用如下:
struct ApplicationState app_state = {.signal =
{
.use_crash_handler = true,
.use_abort_handler = true,
},
.exit_code_on_error = {
.python = 0,
}};
有没有办法在大括号之后添加一个换行符,在结构成员之前添加一个换行符,这样它更像第一个例子而不是第二个例子?
答案 0 :(得分:2)
当前clang-format
没有控制此(自11.0版开始)的有用方法。
尽管BreakBeforeBinaryOperators: All
确实进行了换行(请参见@ eric-backus的回答),但它也影响了许多其他与结构声明无关的格式。
您可以,不过,只需使用结尾逗号即可解决此问题。
之前:
struct ApplicationState app_state = {.signal =
{
.use_crash_handler = true,
.use_abort_handler = true,
},
.exit_code_on_error = {
.python = 0,
}};
之后:
struct ApplicationState app_state = {
.signal = {
.use_crash_handler = true,
.use_abort_handler = true,
},
.exit_code_on_error = {
.python = 0,
},
};
/* ^ notice trailing comma on the second last line! */
答案 1 :(得分:0)
您需要的主要内容是:
BreakBeforeBinaryOperators: All
您可以将整体样式设置为WebKit
,因为这样会将BreakBeforeBinaryOperators
设置为All
。
很明显,clang格式必须将.
视为二进制运算符。我不确定是否应该,但这似乎就是这样做的。
我使用clang格式6.0.0对此进行了测试。推测较新的版本也可以使用,但我尚未进行测试,因此无法确定。