4

我想像这样格式化代码:

  • 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 中使用了以下选项:

代码宽度 = 120

ls_func_split_full = true

ls_code_width = 假

nl_func_leave_one_liners = true

indent_func_call_param = true

nl_func_def_start = 添加

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 中并且需要像这样拆分参数的情况?

4

1 回答 1

5

使用这些设置:

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: 如果和在不同的行中,是否)在函数调用之前添加换行符。()
于 2017-02-15T16:23:25.120 回答