C, C++, C#, ObjectiveC, D, Java, Pawn and VALA 代码格式化(美化) (uncrustify)

前些天GOOGLE后找到了不少格式工具,

由于很多的工具,比如SourceStyler C++SourceFormatX C++等等都不具备详细的配置,不怎么更新,并且需要破解的麻烦

当然做基本的格式化是没啥问题的,可惜本人要求一直很高,当看到GC_1_140的某个实现版本C++ Code Export 1.0.0对代码的格式化程度时候欣喜若狂,

下面是格式化后的代码:

 

 /** * CLASS: CS320ToolsCFG * METHOD: CheckAPNSList * DESCRIPTION: TODO * @param filename TODO * @param ret TODO * @param cap TODO * @return TODO */ int CS320ToolsCFG::CheckAPNSList(char *filename, char *ret, int cap) { /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ char buff[100]; char newBuff[100]; int count = m_APNNameControl.GetItemCount(); /* PSN */ bool ret = false; CString tmp; /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/ if (count < 1) { /* * ShowOperaterInfo("Parameter:"); */ UpdateStatusBar("No APN insert",1); /* Dirty=1 */ return ret; } for (int i = count - 1; i >= 0; i--) { /* * CString tmp=m_APNNameControl.GetItemText(i,1); * PSN */ m_APNNameControl.GetItemText(i,1,buff,100); /* PSN */ if (strlen(buff) != PSN_LENGTH) { m_APNNameControl.SetItemText(i,3,"Skiped"); m_APNNameControl.SetItemText(i,4,"Length Error"); continue; } for (int j = i - 1; j >= 0; j--) { m_APNNameControl.GetItemText(j,1,newBuff,100); /* PSN */ if (0 == strcmp(newBuff,buff)) { m_APNNameControl.SetItemText(i,3,"Skiped"); tmp.Format("Duplicate with PSN[%d]",j + 1); m_APNNameControl.SetItemText(i,4,tmp); break; } } if (j < 0) { m_APNNameControl.SetItemText(i,3,"N/A"); /* clear old Result */ m_APNNameControl.SetItemText(i,4,""); ret = true; } } return ret; }

 

 

注意在定义前后加了

      /*~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~*/

并将所有注释统一转换为

             /*

              * CString tmp=m_APNNameControl.GetItemText(i,1);

              * PSN

              */

 

当然C++ Code Export 1.0.0问题很多。。。并且只看到一个版本,万一格式化出问题了,也并不知道,这就麻烦了。。。

后来又找到了UniversalIndentGUI,有win32图形化的配置界面,但是UniversalIndentGUI_win32有个最大的问题是竟然不识别文档的编码类型,好像没看对ANSI文本格式的支持!!!晕死。。。

 

后来终于找到了

https://sourceforge.net/projects/uncrustify

uncrustify-0.53-win32,可惜配置文件太夸张了!!!没法一蹴而就,只好等来日再做修改了。。。

 

 

 

今天附上我的配置文件下载地址(含配置文件和可执行程序,最新版请到sourceforge下载 

 

 

如何嵌入到souce insight:

(配置文件和可执行程序都放在E:\Tools\formater\uncrustify\my-favorite)

运行souce insight,打开菜单Options-->Custom Commands:

C, C++, C#, ObjectiveC, D, Java, Pawn and VALA 代码格式化(美化) (uncrustify)_第1张图片

打开窗口

C, C++, C#, ObjectiveC, D, Java, Pawn and VALA 代码格式化(美化) (uncrustify)_第2张图片

在点击Add 为此命令命名(可为任意名字,这里命名为 formate-use-uncrustify), 在Run处添加:

E:/Tools/formater/uncrustify/my-favorite/Uncrustify.exe -c E:/Tools/formater/uncrustify/my-favorite/amxmodx.cfg --no-backup -f %f -o%f

注意选择Share Files 和 File,then Line.

 

将自定义命令加入自定义菜单的方法:

 

C, C++, C#, ObjectiveC, D, Java, Pawn and VALA 代码格式化(美化) (uncrustify)_第3张图片

 

C, C++, C#, ObjectiveC, D, Java, Pawn and VALA 代码格式化(美化) (uncrustify)_第4张图片

 

现在用SI打开新的代码源文件,如 C, C++, C#, ObjectiveC, D, Java, Pawn and VALA等,然后运行此菜单的名即可格式化,格式化后的效果:

是不是很不错?

enjoy !

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,C++,c,C#,insert,工具)