我想格式化这样的代码:
a)线宽最大120
b) - 如果调用函数的长度是>则函数调用参数每行一个缩进。 120其他函数调用一行
c) - 函数调用在if,for,while等内...参数应格式化为 b)
我有代码(它只是一个虚构的):
void a_function()
{
if(verify_if_the_conditions_are_meet(first_parameter, second_parameter, third_parameter, fourth_parameter, fifth_parameter, sixth_parameter ))
{
call_a_function_with_many_parameters(first_parameter, second_parameter, third_parameter, fourth_parameter, fifth_parameter, sixth_parameter);
}
save(first_parameter, second_parameter, third_parameter, fourth_parameter, fifth_parameter, sixth_parameter);
}
现在,我希望得到结果:
void a_function()
{
if(verify_if_the_conditions_are_meet(
first_parameter,
second_parameter,
third_parameter,
fourth_parameter,
fifth_parameter,
sixth_parameter ))
{
call_a_function_with_many_parameters(
first_parameter,
second_parameter,
third_parameter,
fourth_parameter,
fifth_parameter,
sixth_parameter);
}
save(first_parameter, second_parameter, third_parameter, fourth_parameter, fifth_parameter, sixth_parameter);
}
我在Uncrustify 0.63中使用了以下选项:
code_width = 120
ls_func_split_full = true
ls_code_width = false
nl_func_leave_one_liners = true
indent_func_call_param = true
nl_func_def_start = add
nl_func_def_start_single =删除
align_oc_msg_colon_first = false
通过这些设置,我就像这样:
void a_function()
{
if(verify_if_the_conditions_are_meet(first_parameter, second_parameter, third_parameter, fourth_parameter,
fifth_parameter, sixth_parameter ))
{
call_a_function_with_many_parameters(
first_parameter,
second_parameter,
third_parameter,
fourth_parameter,
fifth_parameter,
sixth_parameter);
}
save(first_parameter, second_parameter, third_parameter, fourth_parameter, fifth_parameter, sixth_parameter);
}
有没有人将函数调用放在if / for / while中并且需要将参数拆分为这样?
答案 0 :(得分:4)
使用以下设置:
nl_func_call_start_multi_line = true
nl_func_call_args_multi_line = true
code_width = 120
code_width
:尝试将代码宽度限制为 N 列nl_func_call_start_multi_line
:如果(
和(
位于不同的行中,是否在)
之后添加换行符。nl_func_call_args_multi_line
:如果,
和(
位于不同的行中,是否在函数调用中的每个)
后添加换行符。可选:
nl_func_call_end_multi_line = true
nl_func_call_end_multi_line
:如果)
和(
位于不同的行中,是否在函数调用中在)
之前添加换行符。