我使用的是 Clang 格式,配置是不久前完成的。
我注意到变量初始化的样式将大括号与参数保持在同一行,但我希望它在新行上结束(如果参数也已放在新行上)。 这是它的样子:
std::string const long_init{
"Smartasdasdsadasdasdasdasdasdasdasdasdasdasdasdasdasdasglove"};
some_class some_class_var{
long_arg_name_1, long_arg_name_2, long_arg_name_3, long_arg_name_4};
这就是我想要的样子:
std::string const long_init{
"Smartasdasdsadasdasdasdasdasdasdasdasdasdasdasdasdasdasglove"
};
some_class some_class_var{
long_arg_name_1, long_arg_name_2, long_arg_name_3, long_arg_name_4
};
我尝试查看文档,但我似乎找不到合适的参数来调整。
有人知道什么设置控制这个吗?
BreakBeforeBraces (BraceBreakingStyle) clang-format 3.7 ¶ 要使用的大括号破坏样式。
可能的值: BS_Attach(在配置中:附加)始终将大括号附加到周围的上下文。
namespace N {
enum E {
E1,
E2,
};
class C {
public:
C();
};
bool baz(int i) {
try {
do {
switch (i) {
case 1: {
foobar();
break;
}
default: {
break;
}
}
} while (--i);
return true;
} catch (...) {
handleError();
return false;
}
}
void foo(bool b) {
if (b) {
baz(2);
} else {
baz(5);
}
}
void bar() { foo(true); }
} // namespace N
来自文档,希望有帮助:)
根据 clang-format 文档:https://clang.llvm.org/docs/ClangFormatStyleOptions.html#alignafteropenbracket
将
AlignAfterOpenBracket
设置为 BlockIndent
:
AlignAfterOpenBracket: BlockIndent
如果您的代码如下,它似乎不起作用:
VkSubmitInfo submitInfo = {
.commandBufferCount = 1,
.pCommandBuffers = &commandBuffer};
只需在结构体的最后一个成员后面添加一个逗号即可:
VkSubmitInfo submitInfo = {
.commandBufferCount = 1,
.pCommandBuffers = &commandBuffer,};
然后就可以了:
VkSubmitInfo submitInfo = {
.commandBufferCount = 1,
.pCommandBuffers = &commandBuffer,
};