我正在使用Uncrustify v0.60来格式化我的 C++ 源代码。为了配置 Uncrustify,我使用的是UniversalIndentGUI v1.2.0 rev.1070。
在Line Splitting options
UniversalIndentGUI 部分中,我设置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 removing
例如Nl Func Decl Start
或Nl Func Def Start
在左括号字符后添加换行符,(
但这也会影响长度小于 120 个字符的代码。我不想让以下代码分布在多行中:
int Sum( int a, int b, int c, int d );