Project Description
CodeCounter is a command line utility program for counting lines of source code. Currently it supports C#, SQL and XAML. CodeCounter is easily extensible to process other source code types, such as fortran. (see documentation download for details).

Inception

Despite google, despite all of the other code sites, I cannot seem to find a program that reliable counts the number of code lines in my projects. Given my interesting in making small flexible tools, I decided it was time to build my own program for counting lines of code.


Design

From the start, I wanted to build a code line counter that was flexible. So I separated the logic that tabulates the counts from the logic that determines what is “countable”. I also made the logic that determines what is countable, loaded at runtime. These two decisions make for a dynamic and flexible utility program. CodeCounter is easily extended to process other source code types, such as fortran. It is as simple as implementing a few functions defined in an interface.

See our downloads for an example of extending CodeCounter to process VB.NET files. The documentation download contains detailed information about extending CodeCounter.


What does CodeCounter do

It counts the lines of code in source files. Current source code type supported are C#, Xaml and SQL. CodeCounter can easily be extended to count source code from other file types. Download the word .doc file for details on extending CodeCounter.


Example output




Installation

If you downloaded the binaries, you need to copy all of the files in the ZIP into some location. I suggest some where in your path so that the program is always accessible. In the binary zip file you should have found the following files:

Big Woo.NET.dll
CodeCounter.exe
CodeCounter.exe.config
CodeCounter.Library.dll


All of the files need to be copied into the same location. For me, I copied my files to C:\program files\tools. You should pick what works best for you.


Last edited Oct 28, 2009 at 8:26 PM by mattraffel, version 11