一つのシステムの中では複数のプログラミング言語が使われます。すべて同じ言語で統一されると言うことの方が少ないのではないでしょうか。機能やデバイスに合わせて最適な言語を選択することで、開発を高速化したり、プロジェクトがスムーズになったりします。 しかし一つのプロジェクトの中で各言語がどんな状態で存在するのかチェックするのは大事です。そこで使ってみたいのがtokeiです。

tokeiの使い方

tokeiはインストール後、コマンドを叩くだけで使えます。これはとあるプロジェクトの内容です。

$ tokei .
-------------------------------------------------------------------------------
 Language            Files        Lines         Code     Comments       Blanks
-------------------------------------------------------------------------------
 JSON                   14           14           14            0            0
 Markdown                3          220          220            0            0
 Rust                   33        11970         8652         1632         1686
 Shell                   2           30           18            6            6
 Plain Text              1          779          779            0            0
 TOML                    4           91           76            1           14
 YAML                    2          399          174          194           31
-------------------------------------------------------------------------------
 Total                  59        13503         9933         1833         1737
-------------------------------------------------------------------------------

プログラミング言語だけでなく、MarkdownやJSON、YAMLといったテキストファイルの種別も解析できています。解析される項目はファイル数、行数、コード、コメント、空白行となっています。

さらに出力フォーマットを指定できます。

$ tokei . --output json
{"Json":{"blanks":0,"code":14,"comments":0,"stats":[{"blanks":0,"code":1,"comments":0,"lines":1,"name":"./tests/ref/ll/size.json"},{"blanks":0,"code":1,"comments":0,"lines":1,"name":"./tests/ref/tmux_git_log/size.json"},{"blanks":0,"code":1,"comments":0,"lines":1,"name":"./tests/ref/fish_cc/grid.json"},{"blanks":0,"code":1,"comments":0,"lines":1,"name":"./tests/ref/fish_cc/size.json"},{"blanks":0,"code":1,"comments":0,"lines":1,"name":"./tests/ref/indexed_256_colors/grid.json"},..],"lines":399}}

JSONやYAML、XMLで出力した際にはより細かく結果が出るようになります。これを使うことで何らかのプロジェクト解析ツールと組み合わせることもできそうです。

tokeiはRust製のオープンソース・ソフトウェア(MIT License/Apache License 2.0)です。

Aaronepower/tokei: A program that allows you to count code, quickly.