写了个代码统计工具

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

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

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

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

   但注意: 对一些特殊的注释,如 C/C++的  #if 0 #if 1   #if DEBUG #endif 或 xml的<!-- -->之类未做处理。 其运行结果仅供参考。

    贴下效果:   

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





     

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值