#line-comment #comments #source #difference #size #compute #blank

app cloc

Count, or compute differences of, lines of source code and comments

12 releases (5 breaking)

0.6.2 Sep 30, 2020
0.6.1 Sep 28, 2020
0.5.0 Jul 26, 2020
0.4.0 Jun 25, 2020
0.1.4 Mar 12, 2020

#438 in Text processing

MIT license

36KB
774 lines

cloc-rs

Count, or compute differences of, lines of source code and comments.

Overview

Usage

e.g.

macbox :: src/github.com-1ecc6299db9ec823 » cloc .
      0.8915 secs
┌────────────────────────────────────────────────────────────────────────┐
| Language         files        size       blank     comment        code |
├────────────────────────────────────────────────────────────────────────┤
| Bat                 25    69.00 KB         321           0        2127 |
| C                 2022    31.11 MB      171915      146101      806618 |
| CHeader           1684    12.19 MB       42874      131952      156036 |
| CSS                 24   169.76 KB         271          92        1414 |
| Cpp                 89     1.19 MB        4571        4242       28867 |
| CppHeader           73   345.98 KB        1673        1707        7456 |
| Go                   5   137.84 KB         605         447        3911 |
| Haskell              1     74.00 B           1           0           3 |
| Html               252     1.55 MB         987           0       63786 |
| JavaScript         294     1.41 MB        4375        2208       19874 |
| Json              1090     1.29 MB           3           0       33999 |
| Markdown          2930    10.59 MB       78502           0      208939 |
| Protobuf             1     1.10 KB           2           0          28 |
| Python              95   865.36 KB        4095       10216       15230 |
| Ruby               175   594.49 KB        3501        3603       18335 |
| Rust             34286   306.20 MB      749237     1305784     7270348 |
| Shell              270     1.11 MB        5060        6647       28384 |
| Toml              1640     2.18 MB        8957       14968       54014 |
| Xml                236     1.23 MB        2852        1681       22814 |
| Yaml              1256     1.36 MB        4238        2892       43028 |
├────────────────────────────────────────────────────────────────────────┤
| Sum              46448   373.54 MB     1084040     1632540     8785211 |
└────────────────────────────────────────────────────────────────────────┘

Install

$ cargo install cloc

or

$ git clone https://github.com/ltoddy/cloc-rs.git
$ cargo install --path .

How to contribute(support for more language)

  • src/calculator.rs文件中, 有一个在lazy_static中的全局变量: MANAGER,内部有一个宏

language!($name, $ext, $single, $multi)

参数解释:

  • 第一个参数: 语言的名字
  • 第二个参数: 这个语言文件的文件后缀
  • 第三个参数: 这个语言的单行注释(没有就不填)
  • 第四个参数: 这个语言的多行注释(没有就不填)

TODO

  • 统计结果可以生成Markdown, Html文件(由参数--output=(markdown)|(html) 指定)
  • 去除代码中使用的unwrap()
  • 去除代码中的expect, 更细粒度的错误处理
  • 美化输出
  • 完善测试
  • 完善文档
  • CI加上cargo clippy --release -- -D clippy::all限制
  • 压榨性能
  • ...

Dependencies

~4MB
~68K SLoC