凑热闹,Share自己写的另一个小工具--代码统计器。
看了边城浪子提供的代码统计工具,不禁让我想起了,今年夏天写的一个类似的小工具。当时,是应一个朋友的要求写的,后来被他用于象老板证明自己的工作量了,完全出乎我的意料
截图如下:
功能:
1. 通过配置修改配置文件,可以提供一定程度上的扩展性。(稍后会给出相应的Xml文件说明)
2. 支持将统计结果生成RTF文件和PDF文件。(因为当时时间的原因,未提供生成HTML的功能)
3. 支持对整个目录进行统计,同样的,不支持对单个文件的统计。因为,个人认为,对单个文件是没有必要进行代码行数统计的。
缺陷:
1. 因为当时写这个小工具时,是用VS.Net 2002,没有选择整个目录的控件,所以,自己写了一个,写得不是很好,可能会存在一些问题。
2. 这个工具在转入选定目录结构和分析计算时,对多线程的支持不是太好,这和当然自己在这方面的能力不强有关系。
如果有时间,且这个工具的确有点作用的话,我会把考虑它重新完善一下的。
注:此工具的PDF生成功能依赖于ITextSharp开源组件。
下面,介绍一下配置文件的结构。
<Configurations>
<Languages>
<Language type="CSharp">
<!-- 文件类型(即扩展名列表) -->
<FileType>cs;aspx.cs;asmx.cs</FileType>
<WrapSign isCounted="1">;</WrapSign>
<Signature pair="0">///</Signature>
<Signature pair="1">/*|*/</Signature>
<Signature pair="0">//</Signature>
</Language>
<Language type="Delphi">
<FileType>pas</FileType>
<Signature pair="0">//</Signature>
<Signature pair="1">(*|*)</Signature>
</Language>
<Language type="VB">
<FileType>frm;bas;ctl;cls</FileType>
<WrapSign isCounted="0"> _</WrapSign>
<Signature pair="0">'</Signature>
</Language>
<Language type="C">
<FileType>c;h;cpp</FileType>
<WrapSign isCounted="1">;</WrapSign>
<Signature pair="0">//</Signature>
<Signature pair="1">/*|*/</Signature>
</Language>
<Language type="Javascript">
<FileType>js</FileType>
<Signature pair="0">//</Signature>
<Signature pair="1">/*|*/</Signature>
</Language>
</Languages>
<UI>
<Options>
<OptionItem id="IsRecursive" desc="是否递归目录">1</OptionItem>
<OptionItem id="IsAutoExpandAllNodes" desc="是否自动展开所有的节点">1</OptionItem>
</Options>
</UI>
</Configurations>
上面,是此工具依赖的配置文件Config.xml的结构。很明显,Language元素定义的是一种编程语言被解析时的相关信息。相信,大家都可以看得懂。如果需要让这个工具对一种新语言予以支持的话,只要加一个Language元素,同时定义相关子元素就可以了。请注意,UI元素中的内容不要自行修改,因为它是由程序进行控制。当然,你真的要改,我也没有办法。
下载地址:download (终于上传成功了。看来家里的网络有点儿问题。)