周末想统计下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
原文地址:http://blog.csdn.net/xcl168/article/details/42087677