/SourceCounter

统计源代码的行数信息

Primary LanguageElixirApache License 2.0Apache-2.0

SourceCounter

统计 C/C++ 源代码的行数信息

环境依赖

依赖 Erlang Elixir,Windows 需前往官网下载安装,*nix 下建议使用对应的包管理器安装。

ArchLinux

sudo pacman -S erlang elixir

MacOS

brew install erlang elixir

运行

下面所说的线程为 Erlang 线程

参数指定一个目录时,每一个文件一个线程。

$ cd ./source_counter
$ mix counter ./test/src/
file:dir/hello.c total:7 empty:1 effective:5 comment:1
file:folder/dir/hi.c total:5 empty:0 effective:5 comment:0
file:hello.c total:19 empty:4 effective:7 comment:11
file:folder/dir/hello.c total:7 empty:1 effective:5 comment:1

多个参数同时指定多个目录,每个目录一个线程,其中每个文件一个线程。

$ mix counter ./test/src/folder/ ./test/src/dir
file:dir/hi.c total:5 empty:0 effective:5 comment:0
file:hello.c total:7 empty:1 effective:5 comment:1
file:dir/hello.c total:7 empty:1 effective:5 comment:1

可混合指定目录和文件,目录一个线程,文件一个线程,目录中每个文件一个线程。

$ mix counter ./test/src/folder/ ./test/src/dir/hello.c
file:dir/hi.c total:5 empty:0 effective:5 comment:0
file:dir/hello.c total:7 empty:1 effective:5 comment:1
file:./test/src/dir/hello.c total:7 empty:1 effective:5 comment:1

运行测试

$ cd ./source_counter
$ mix test
file:test/src/hello.c total:19 empty:4 effective:7 comment:11
.file:test/src/hello.c total:19 empty:4 effective:7 comment:11
file:test/src/dir/hello.c total:7 empty:1 effective:5 comment:1
file:test/src/folder/dir/hello.c total:7 empty:1 effective:5 comment:1
file:test/src/folder/dir/hi.c total:5 empty:0 effective:5 comment:0
.

Finished in 0.04 seconds
2 tests, 0 failures

Randomized with seed 383000

TODO

  • 多线程
  • 通过配置文件,后缀名,配置更多语言的支持
  • 增加非 UTF-8 编码支持
  • ...