gpt4 book ai didi

c++ - 使用 Uncrustify 完全拆分长函数定义,不仅在逗号处

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:37:33 27 4
gpt4 key购买 nike

我正在使用 Uncrustify v0.60 来格式化我的 C++ 源代码。为了配置 Uncrustify,我使用了 UniversalIndentGUI v1.2.0 rev.1070

在 UniversalIndentGUI 的 Line Splitting options 部分,我将 Code Width 设置为 120。

假设我有以下示例代码:

namespace MyNameSpace
{
class MyClass
{
public:
std::map< std::string, MyOtherClass* >* ConstructMyOtherClassMap( std::vector< std::string >* allNames, int arg0, double arg1, char arg2 );

}
}

该方法声明以大于 120 的列结尾,因此 Uncrustify 返回以下结果:

namespace MyNameSpace
{
class MyClass
{
public:
std::map< std::string, MyOtherClass* >* ConstructMyOtherClassMap( std::vector< std::string >* allNames,
int arg0,
double arg1,
char arg2 );

}
}

如您所见,Uncrustify 在逗号处拆分了参数列表,现在方法声明以小于 120 的列结束。但是,在这种情况下,我希望 Uncrustify 也将第一个参数放在它自己的行中,如下所示:

namespace MyNameSpace
{
class MyClass
{
public:
std::map< std::string, MyOtherClass* >* ConstructMyOtherClassMap(
std::vector< std::string >* allNames,
int arg0,
double arg1,
char arg2 );

}
}

是否可以使用 Uncrustify v0.60 做到这一点?

我知道 Newline adding and removed 部分中的选项,例如 Nl Func Decl StartNl Func Def Start 添加了一个在左括号 ( 字符后换行,但这也会影响长度 < 120 个字符的代码。我不想让以下代码分布在多行中:

int Sum( int a, int b, int c, int d );

最佳答案

对我来说(使用 Uncrustify 0.63),为了达到你想要的效果,它可以组合使用:

在函数声明中的'('之后添加或删除换行符

nl_func_decl_start                       = add

在函数定义中的'('之后添加或删除换行符

nl_func_def_start                        = add

只有一个参数时覆盖nl_func_decl_start。

nl_func_decl_start_single                = remove

当只有一个参数时覆盖 nl_func_def_start。

nl_func_def_start_single                 = remove

在函数声明中的每个','之后添加或删除换行符

nl_func_decl_args                        = add

在函数定义中的每个 ',' 之后添加或删除换行符

nl_func_def_args                         = add

在函数声明中的 ')' 之前添加或删除换行符

nl_func_decl_end                         = add

在函数定义中的 ')' 之前添加或删除换行符

nl_func_def_end                          = add

当只有一个参数时覆盖 nl_func_decl_end。

nl_func_decl_end_single                  = remove

当只有一个参数时覆盖 nl_func_def_end。

nl_func_def_end_single                   = remove

精简版(无解释):

nl_func_decl_start                       = add
nl_func_def_start = add
nl_func_decl_start_single = remove
nl_func_def_start_single = remove
nl_func_decl_args = add
nl_func_def_args = add
nl_func_decl_end = add
nl_func_def_end = add
nl_func_decl_end_single = remove
nl_func_def_end_single = remove

关于c++ - 使用 Uncrustify 完全拆分长函数定义,不仅在逗号处,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15449079/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com