Sharing A Powerful Tool For Calculate Code Lines
最近正好需要统计下某项目代码行数,然后就找代码行数统计工具。以前找到过一个正则表达式,但是只有在VS2010下有用,VS2012和VS2013下的统计就不好使了。
接着搜索了一下代码行数统计绿色工具免费版,看到花花绿绿的浮动窗口和卧虎藏龙的下载链接,感觉非常令人生厌,而且,有些国产软件下载总是让你一不小心就中毒,所以最后还是放弃了下载。
当然,你知道,这点简单小功能,对于已经习惯自己搬砖搞定一切的码农,实在没有必要再费时间搜来搜去,而且那首歌唱得好,“Let it go,let it go...The code doesn‘t bother me anyway.”,所谓求人不如求己是也。
抽空自己写了这个代码行数分析winform工具,目前测试通过支持的语言有C#、Java、SQL、JavaScript和Python,共享出来,希望对你有帮助。
软件界面:
一、程序简单分析
统计分析代码行数,需要分析源文件。这里的程序选择简单的打开源文件的方法,但是读取内容不是一下子全部读完,而是一行一行读取,读取后,需要按统计条件分析并计数。
统计条件抽象如下:
using System; namespace PowerCodeCalculator.Model { /// <summary> /// 代码统计条件 /// </summary> [Serializable] public sealed class CodeStatisticCondition { /// <summary> /// 代码目录 绝对路径 形如:D:PowerCode /// </summary> public string CodeDirectory { get; set; } /// <summary> /// 统计的代码类型 通常为.cs代码文件 /// </summary> public string FileTypeFilter { get; set; } /// <summary> /// 忽略统计的代码文件 如VS自动生成的.designer.cs文件等 多个以逗号,分隔 /// </summary> public string IgnoreFileType { get; set; } /// <summary> /// 是否统计大括号{或} /// </summary> public bool IsCalcBrace { get; set; } /// <summary> /// 是否统计空行行数 /// </summary> public bool IsCalcEmptyLine { get; set; } /// <summary> /// 是否统计注释行数 /// </summary> public bool IsCalcComment { get; set; } /// <summary> /// 是否启用多线程统计 /// </summary> public bool IsEnableMultiThread { get; set; } } }
代码源文件信息CodeInfo抽象如下:
using System; namespace PowerCodeCalculator.Model { /// <summary> /// 代码信息实体 /// </summary> [Serializable] public sealed class CodeInfo { /// <summary> /// 文件名绝对路径 形如:c:Program.cs /// </summary> public String FilePath { get; set; } /// <summary> /// 代码行数 /// </summary> public Int64 LineCount { get; set; } /// <summary> /// 代码字符数 /// </summary> public Int64 CharCount { get; set; } } }