首页 > 代码库 > 写了个代码统计工具

写了个代码统计工具

       周末想统计下XCL-Charts到底写了多少行代码,就用Go语言写了个代码统计工具,效果还不错,统计速度也快。

就把统计报表部份今天完善了下,硬生生把很短的代码澎涨到200多行了。

     除了必要的代码行数和文件总计外,增加了代码行数有300,500,1000,5000及5000以上这几个级别的代码文件个数统计功能。

同时,用户可以指定显示出代码行数大于等于某值的所有文件明细,并按从大到小顺序排列。

    贴下效果:   

E:\XCLTools\src\crname>go run scounter.go -l=600  -i .java E:\GitHub\GitHub\XCL-Charts\XCL-Charts\src

代码统计汇总(2014-12-22 22:20:47)
=================================================
分析根目录: E:\GitHub\GitHub\XCL-Charts\XCL-Charts\src

 代码行数     : 文件个数
-------------------------------------------------
 line <= 300  : 92
 line <= 500  : 13
 line <= 1000 : 6
 line <= 5000 : 0
 line > 5000  : 0
-------------------------------------------------
 代码行总计: 18214  注释行总计: 7068
 分析文件数: 111

代码行( >= 600 )文件明细:
   代码行    注释行    文件名
-------------------------------------------------
   987         154    .\org\xclcharts\renderer\AxesChart.java
   620          53    .\org\xclcharts\chart\AreaChart.java
   615          27    .\org\xclcharts\renderer\plot\PlotLegendRender.java
   610          97    .\org\xclcharts\chart\BarChart.java
-------------------------------------------------
             文件数:4

elapsed 1.744222 seconds
         在Linux下,我加了颜色效果,来突出统计值。

 技术分享

         上面的XCL-Charts库我写了18214行有效Java代码,对比下微软的casablanca库,那么强大的C++ sdk库,

才将近7k的C++代码.........

E:\XCLTools\src\crname> scounter -l=700  -i=.c,.cpp,.h,.hpp
D:\casablanca1027\Release\src

代码统计汇总(2014-12-22 21:26:54)
=================================================
分析根目录: D:\casablanca1027\Release\src

 代码行数     : 文件个数
-------------------------------------------------
 line <= 300  : 9
 line <= 500  : 6
 line <= 1000 : 2
 line <= 5000 : 2
 line > 5000  : 0
-------------------------------------------------
 代码行总计: 6981  注释行总计: 1688
 分析文件数: 19

代码行( >= 700 )文件明细:
   代码行    注释行    文件名
-------------------------------------------------
  1489          35    .\json\json.cpp
  1280         825    .\http\client\http_client.cpp
-------------------------------------------------
             文件数:2

elapsed 1.027630 seconds
    从上面例子可以看到,在-i后面加各种扩展名,可以把所指定扩展名的文件合在一起统计,也可以跨语言的统计,如 -i=.cpp,.go,.java 之类.

 附命令说明:    

    

xcl@xclpc:~/xclcounter$ ./scounter

NAME:
  scounter <path> 统计代码行数
OPTIONS:
  -i="": 仅包含指定扩展名的文件(如:.java,.cpp,.h),不输入则包含全部.
  -v=false: 是否显示文件统计明细.
  -l=0: 在统计结果上列出大于等于所指定行数(0为不记录)的文件信息.
EXAMPLE:
  scounter -i .java c:\xclcharts\xclcharts\src
  scounter -i=.cpp,.h,.hpp,.c /xclproject/src
  scounter -i .go -v=false /usr/local/go/src
  scounter -l=680 -i=.cpp,.h,.hpp,.c  /xclproject/common/src
AUTHOR:
  XiongChuanLiang (xcl_168@aliyun.com) 

     这类东西在Go语言中其实很好写,正则加代码处理过滤掉多行代码注释,再结合文件遍历及channel, 一下就出来了。

     最后我把XCL-Charts的库和demo工程代码加起来,共有32379行代码,当初真是给自己埋了好大一个坑,搞得现在都还在填坑中......


    工具下载: 点此


  MAIL: xcl_168@aliyun.com

  BLOG: http://blog.csdn.net/xcl168





     

写了个代码统计工具