什么是 clang-format 等同于 rustfmt 的 indent_style=Block?
What's clang-format's equivalent to rustfmt's indent_style=Block?
如果 clang-format 是 rustfmt,它将有这个包罗万象的 indent_style 配置选项,它指的是缩进样式的基本区别:
Visual(默认为 clang 格式):
ReturnType<std::vector<int>> ClassName::functionName(int a,
bool b,
float c,
double d,
long double complex e);
static const char* names[] = {"a",
"b",
"c"};
块(rustfmt 中的默认值):
ReturnType<std::vector<int>> ClassName::functionName(
int a,
bool b,
float c,
double d,
long double complex e);
static const char* names[] = {
"a",
"b",
"c",
};
如何配置 clang-format 以在所有语法范围内进行块缩进?
或者是否有任何 C++ 格式化程序支持块缩进?
默认样式设置为 Microsoft 样式(在左括号处对齐)。使用 BasedOnStyle
设置为 Google
以获得块缩进:
BasedOnStyle: Google
Uncrustify 可以做到,至少就您可以为 C++ 必须提供的每个可以想象的语法范围找到相应的选项而言——我没有看到任何整体选项。
首先:
nl_func_def_start_multi_line = true
nl_func_decl_start_multi_line = true
nl_func_call_start_multi_line = true
nl_after_brace_open=true
nl_type_brace_init_lst_open = true
nl_enum_own_lines = add
nl_constr_init_args = add
pos_constr_colon = lead_break
pos_constr_comma = lead_break
可配置的内容:
(涵盖函数、构造函数初始化列表和枚举,但不包括列表)
AlignAfterOpenBracket: AlwaysBreak
BreakConstructorInitializers: BeforeComma
BinPackArguments: 'false'
BinPackParameters: 'false'
BinPack* 选项并不严格用于块缩进,
但要像问题所示那样做,并将一个或所有项目放在同一行上。
对于列表,clang 格式在使用后缀逗号的地方使用块缩进,在使用中缀逗号的地方使用视觉缩进:
static const char* postfixCommaDelimited[] = {
"a",
"b",
"c",
};
static const char* infixCommaDelimited[] = {"a", "b",
"c"};
如果所有中缀逗号分隔的列表都是单行的,我认为这是有道理的,
但我希望 clang-format 可以做点什么
多行列表。
Rustfmt 将它们重写为后缀逗号,我也希望在 C++ 中使用它。
如果 clang-format 是 rustfmt,它将有这个包罗万象的 indent_style 配置选项,它指的是缩进样式的基本区别:
Visual(默认为 clang 格式):
ReturnType<std::vector<int>> ClassName::functionName(int a,
bool b,
float c,
double d,
long double complex e);
static const char* names[] = {"a",
"b",
"c"};
块(rustfmt 中的默认值):
ReturnType<std::vector<int>> ClassName::functionName(
int a,
bool b,
float c,
double d,
long double complex e);
static const char* names[] = {
"a",
"b",
"c",
};
如何配置 clang-format 以在所有语法范围内进行块缩进?
或者是否有任何 C++ 格式化程序支持块缩进?
默认样式设置为 Microsoft 样式(在左括号处对齐)。使用 BasedOnStyle
设置为 Google
以获得块缩进:
BasedOnStyle: Google
Uncrustify 可以做到,至少就您可以为 C++ 必须提供的每个可以想象的语法范围找到相应的选项而言——我没有看到任何整体选项。
首先:
nl_func_def_start_multi_line = true
nl_func_decl_start_multi_line = true
nl_func_call_start_multi_line = true
nl_after_brace_open=true
nl_type_brace_init_lst_open = true
nl_enum_own_lines = add
nl_constr_init_args = add
pos_constr_colon = lead_break
pos_constr_comma = lead_break
可配置的内容:
(涵盖函数、构造函数初始化列表和枚举,但不包括列表)
AlignAfterOpenBracket: AlwaysBreak BreakConstructorInitializers: BeforeComma BinPackArguments: 'false' BinPackParameters: 'false'
BinPack* 选项并不严格用于块缩进, 但要像问题所示那样做,并将一个或所有项目放在同一行上。
对于列表,clang 格式在使用后缀逗号的地方使用块缩进,在使用中缀逗号的地方使用视觉缩进:
static const char* postfixCommaDelimited[] = { "a", "b", "c", }; static const char* infixCommaDelimited[] = {"a", "b", "c"};
如果所有中缀逗号分隔的列表都是单行的,我认为这是有道理的, 但我希望 clang-format 可以做点什么 多行列表。 Rustfmt 将它们重写为后缀逗号,我也希望在 C++ 中使用它。