使用 Tokei 查看有關(guān)代碼的統(tǒng)計信息
了解有關(guān)項目編程語言的詳細信息。
近來,GitHub 添加了一個小指標來展示項目的細節(jié),包括項目使用的編程語言。在這之前,對一個新的貢獻者來說,了解他們感興趣的項目的信息是較為困難的。
這個補充很有幫助,但是如果您想知道有關(guān)本地存儲庫中項目的相同信息該怎么辦呢? 這正是 Tokei 派上用場的地方。這是一個當你想和精通不同語言的人想要構(gòu)建一個項目時可以告訴你項目的代碼數(shù)據(jù)的特別有用的工具。
探索 Tokei
據(jù)其 README,“Tokei 是一個可以展示你的代碼數(shù)據(jù)的程序。Tokei 將會展示文件的數(shù)量,和這些文件中不同語言的代碼、注釋、空白的行數(shù)。”它的 v.12.1.0 版本 elaborates 是這樣子介紹的,“Tokei 是一個快速準確的代碼分析 CLI 工具和庫,可以使你輕松快速地在你的代碼庫中看到有多少空白、評論和代碼行”。它能夠識別超過 150 種編程語言。
$ ./tokei ~/exa/src ~/Work/wildfly/jaxrs
==================
Language Files Lines Code Comments Blank
Java 46 6135 4324 945 632
XML 23 5211 4839 473 224
---------------------------------
Rust
Markdown
-----------------------------------
Total
安裝 Tokei
在 Fedora 上安裝 Tokei:
$ sudo dnf install tokei
用 Rust's Cargo 包管理器安裝:
$ cargo install tokei
使用 Tokei
要列出當前目錄中的代碼統(tǒng)計:
$ tokei
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Ada 10 2840 1681 560 599
Assembly 4 2508 1509 458 541
GNU Style Assembly 4 2751 1528 748 475
Autoconf 16 2294 1153 756 385
Automake 1 45 34 0 11
BASH 4 1895 1602 133 160
Batch 2 4 4 0 0
C 330 206433 150241 23402 32790
C Header 342 60941 24682 29143 7116
CMake 48 4572 3459 548 565
C# 9 1615 879 506 230
C++ 5 907 599 136 172
Dockerfile 2 16 10 0 6
Fish 1 87 77 5 5
HTML 1 545 544 1 0
JSON 5 8995 8995 0 0
Makefile 10 504 293 72 139
Module-Definition 12 1183 1046 65 72
MSBuild 1 141 140 0 1
Pascal 4 1443 1016 216 211
Perl 2 189 137 16 36
Python 4 1257 949 112 196
Ruby 1 23 18 1 4
Shell 15 1860 1411 222 227
Plain Text 35 29425 0 26369 3056
TOML 64 3180 2302 453 425
Visual Studio Pro| 30 14597 14597 0 0
Visual Studio Sol| 6 655 650 0 5
XML 1 116 95 17 4
YAML 2 81 56 12 13
Zsh 1 59 48 8 3
-------------------------------------------------------------------------------
Markdown 55 4677 0 3214 1463
|- C 1 2 2 0 0
|- Rust 19 336 268 20 48
|- TOML 23 61 60 0 1
(Total) 5076 330 3234 1512
-------------------------------------------------------------------------------
Rust 496 210966 188958 5348 16660
|- Markdown 249 17676 1551 12502 3623
(Total) 228642 190509 17850 20283
===============================================================================
Total 1523 566804 408713 92521 65570
===============================================================================
$
下面的命令打印出了支持的語言和拓展:
$ tokei -l
ABNF
ABAP
ActionScript
Ada
Agda
Alex
Alloy
Arduino C++
AsciiDoc
ASN.1
ASP
ASP.NET
Assembly
GNU Style Assembly
如果你在兩個文件夾上運行 tokei
并指定其位置作為參數(shù),它將以先入先出的規(guī)則打印單個文件的統(tǒng)計數(shù)據(jù):
Running Tokei on two files
默認情況下,tokei
僅僅輸出有關(guān)語言的數(shù)據(jù),但是使用 --files
標記可提供單個文件統(tǒng)計信息:
$ tokei ~/exa/src --files
===========================================================================================
Language Files Lines Code Comments Blanks
===========================================================================================
Rust 54 9339 7070 400 1869
|- Markdown 33 1306 0 1165 141
(Total) 10645 7070 1565 2010
-------------------------------------------------------------------------------------------
/home/ssur/exa/src/theme/default_theme.rs 130 107 0 23
/home/ssur/exa/src/output/render/times.rs 30 24 0 6
/home/ssur/exa/src/output/render/users.rs 98 76 0 22
/home/ssur/exa/src/output/render/size.rs 182 141 3 38
/home/ssur/exa/src/output/render/octal.rs 116 88 0 28
/home/ssur/exa/src/output/render/mod.rs 33 20 3 10
/home/ssur/exa/src/output/render/inode.rs 28 20 0 8
/home/ssur/exa/src/output/render/links.rs 87 65 0 22
/home/ssur/exa/src/output/render/groups.rs 123 93 0 30
|ome/ssur/exa/src/output/render/filetype.rs 31 26 0 5
/home/ssur/exa/src/output/render/blocks.rs 57 40 0 17
/home/ssur/exa/src/output/render/git.rs 108 87 0 21
|/ssur/exa/src/output/render/permissions.rs 204 160 3 41
/home/ssur/exa/src/output/grid.rs 67 51 3 13
/home/ssur/exa/src/output/escape.rs 26 18 4 4
/home/ssur/exa/src/theme/lsc.rs 235 158 39 38
/home/ssur/exa/src/options/theme.rs 159 124 6 29
/home/ssur/exa/src/options/file_name.rs 46 39 0 7
/home/ssur/exa/src/options/flags.rs 84 63 6 15
/home/ssur/exa/src/fs/mod.rs 10 8 0 2
/home/ssur/exa/src/fs/feature/mod.rs 33 25 0 8
-- /home/ssur/exa/src/output/time.rs ---------------------------------------------------------------
|- Rust 215 170 5 40
|- Markdown 28 0 25 3
總結(jié)
我發(fā)現(xiàn)使用 tokei
來了解我的代碼統(tǒng)計數(shù)據(jù)十分容易。另一個使用 tokei
的好處就是它可以用作為一個很容易集成到其他項目的庫。訪問 Tokei 的 Crate.io page 和 Docs.rs 網(wǎng)站來了解其更多用法。如果你想?yún)⑴c其中,你也可以通過它的 GitHub 倉庫 來為 Tokei 作貢獻。