Vim整合AStyle进行代码美化

来源:互联网 发布:宁波邦元单片机 编辑:程序博客网 时间:2024/05/22 05:37

1、AStyle格式化代码

安装AStyle,并把bin目录加入环境变量中

在vimrc中加入以下设置代码
"调用AStyle程序,进行代码美化func CodeFormat()          "取得当前光标所在行号          let lineNum = line(".")          "C源程序          if &filetype == 'c'                    "执行调用外部程序的命令                    exec "%! astyle -A3Lfpjk3NS\<CR>"          "H头文件(文件类型识别为cpp),CPP源程序          elseif &filetype == 'cpp'                    "执行调用外部程序的命令                    exec "%! astyle -A3Lfpjk3NS\<CR>"          "JAVA源程序          elseif &filetype == 'java'                    "执行调用外部程序的命令                    exec "%! astyle -A2Lfpjk3NS\<CR>"          else                     "提示信息                    echo "不支持".&filetype."文件类型。"          endif          "返回先前光标所在行          exec lineNumendfunc"映射代码美化函数到Shift+f快捷键map <S-F> <Esc>:call CodeFormat()<CR>
2 SourceMonitor:识别坏味道
解决了代码风格后,是否就可以算做漂亮的代码了呢? 
要知道再漂亮的衣服穿到胖子身上,也漂亮不到哪去(阿门,原谅我吧)。对于代码来说,符合代码风格只是第一步,漂亮的代码还要易于理解。让人容易理解的话,单个函数的代码行就不能太长,嵌套层数就不能太多,分支条件判断不能太多。这些工作不是代码风格能解决的。我们需要能够自动检查代码质量的工具-SourceMonitor。
SourceMonitor是一款代码质量检查的软件。能够检查文件中函数的个数,每个函数的代码行数,注释比例,函数的调用深度,圈复杂度等。 
其中需要最关键的是每个函数圈复杂度和每个函数的代码行数。圈复杂度是指函数中可独立执行的路径,因此函数中每出现一次if/else/while,switch/case/break等,圈复杂度就加1.圈复杂度越高,说明函数中可执行的路径越多,也就越复杂。超过一定值如(15或者10)以后就要考虑能否将函数重构了。此外一个函数的代码行数如果太长,不能一屏显示的话,不容易让人记住和理解,也需要对该函数进行提炼。


3 Eclipse的半自动重构
利用SourceMonitor找出需要重构或提炼的函数后,难道又要我手工重构吗,有没有重构的工具呢?全自动的目前还没见过,如果有同学见到,请留言。相比来说,半自动的重构工具还是比较多的,Eclipse中就有一个重构菜单,提供函数提炼,变量或方法重命名等不少基础的重构功能。 

Eclipse的半自动的重构能减少人工重构的错误,降低开发人员所耗费的精力,这也是为什么一个我作为C/C++程序员越来越喜欢Eclipse的原因。

4、VisualStdio可以使用StyleCop进行代码审查

0 0
原创粉丝点击