Rust代码统计工具tokei的使用,高效分析项目代码行数、语言分布和编程统计
Rust代码统计工具tokei的使用,高效分析项目代码行数、语言分布和编程统计
Tokei是一个显示代码统计信息的程序。它会展示文件数量、文件中的总行数,并按语言分组显示代码、注释和空白行的数量。
示例
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
BASH 4 49 30 10 9
JSON 1 1332 1332 0 0
Shell 1 49 38 1 10
TOML 2 77 64 4 9
-------------------------------------------------------------------------------
Markdown 5 1355 0 1074 281
|- JSON 1 41 41 0 0
|- Rust 2 53 42 6 5
|- Shell 1 22 18 0 4
(Total) 1471 101 1080 290
-------------------------------------------------------------------------------
Rust 19 3416 2840 116 460
|- Markdown 12 351 5 295 51
(Total) 3767 2845 411 511
===============================================================================
Total 32 6745 4410 1506 829
===============================================================================
特性
- Tokei非常快速,能够在几秒钟内统计数百万行代码
- Tokei非常准确,正确处理多行注释、嵌套注释,并且不会统计字符串中的注释
- 支持超过150种语言及其各种扩展
- 可以输出多种格式(CBOR、JSON、YAML)
- 支持Mac、Linux和Windows平台
- 可以作为库集成到其他项目中
安装
包管理器
Linux
# Alpine Linux (since 3.13)
apk add tokei
# Arch Linux
pacman -S tokei
# Cargo
cargo install tokei
# Conda
conda install -c conda-forge tokei
# Fedora
sudo dnf install tokei
# FreeBSD
pkg install tokei
# NetBSD
pkgin install tokei
# Nix/NixOS
nix-env -i tokei
# OpenSUSE
sudo zypper install tokei
macOS
# Homebrew
brew install tokei
# MacPorts
sudo port selfupdate
sudo port install tokei
Windows
scoop install tokei
手动安装
下载
可以从发布页面下载预编译的二进制文件。
从源码构建
cargo install --git https://github.com/XAMPPRocky/tokei.git
使用方法
基本用法
$ tokei ./foo
多个文件夹
$ tokei ./foo ./bar ./baz
或
$ tokei ./foo, ./bar, ./baz
排除文件夹
$ tokei ./foo --exclude *.rs
排序输出
$ tokei ./foo --sort code
输出文件统计
$ tokei ./foo --files
输出不同格式
$ tokei ./foo --output json
完整示例
// 安装tokei
// cargo install tokei
// 基本使用:统计当前目录
tokei .
// 统计特定目录
tokei src/
// 统计多个目录
tokei src/ tests/
// 排除某些文件类型
tokei . --exclude "*.json"
// 按代码行数排序
tokei . --sort code
// 输出JSON格式
tokei . --output json
// 输出单个文件统计
tokei . --files
// 统计Rust项目示例
tokei . --type=Rust
// 生成项目徽章
// [](https://github.com/XAMPPRocky/tokei)
支持的编程语言
Tokei支持超过150种编程语言,包括但不限于:
- Rust
- C
- C++
- Python
- Java
- JavaScript
- Go
- Ruby
- PHP
- Swift
- Kotlin
- TypeScript
- 等等
1 回复
Rust代码统计工具tokei的使用指南
工具简介
Tokei是一个快速、准确的代码统计工具,用Rust编写,可以分析项目的代码行数、语言分布和编程统计信息。它支持超过150种编程语言,能够统计代码行数、注释行数、空白行数等指标。
安装方法
使用Cargo安装
cargo install tokei # 使用Rust的包管理器Cargo安装tokei
使用包管理器安装
-
macOS (Homebrew):
brew install tokei # 使用Homebrew在macOS上安装
-
Linux (Debian/Ubuntu):
sudo apt install tokei # 在Debian/Ubuntu上使用apt安装
-
Arch Linux:
pacman -S tokei # 在Arch Linux上使用pacman安装
基本使用方法
统计当前目录代码
tokei # 统计当前目录下所有代码
统计指定目录
tokei path/to/your/project # 统计指定目录下的代码
统计特定语言
tokei -l rust,go # 只统计Rust和Go代码
排除某些文件或目录
tokei --exclude '*.md' --exclude 'tests/' # 排除所有.md文件和tests目录
输出格式
默认输出
tokei # 默认表格格式输出
示例输出:
===============================================================================
Language Files Lines Code Comments Blanks
===============================================================================
Rust 10 1200 1000 150 50
Markdown 5 300 0 250 50
TOML 2 50 40 5 5
-------------------------------------------------------------------------------
Total 17 1550 1040 405 105
===============================================================================
JSON格式输出
tokei --output json # 输出JSON格式结果
YAML格式输出
tokei --output yaml # 输出YAML格式结果
CSV格式输出
tokei --output csv # 输出CSV格式结果
高级功能
按文件类型排序
tokei --sort lines # 按行数排序结果
可选排序字段:files
, lines
, code
, comments
, blanks
生成图表
tokei --chart # 生成ASCII图表显示语言分布
忽略.gitignore中的文件
tokei --hidden --no-ignore-parent # 统计包括隐藏文件,不忽略.gitignore中的文件
与其他工具结合使用
统计Rust项目中代码行数最多的10个文件:
tokei -l rust -f -o json | jq -r '.Rust[] | "\(.stats.lines.code) \(.name)"' | sort -nr | head -10
# 使用jq处理tokei的JSON输出,按代码行数排序显示前10个文件
实际应用示例
统计Rust项目代码
cd my_rust_project # 进入Rust项目目录
tokei -l rust # 只统计Rust代码
比较两个项目的代码量
tokei path/to/project1 -o json > stats1.json # 保存第一个项目的统计结果
tokei path/to/project2 -o json > stats2.json # 保存第二个项目的统计结果
# 然后可以比较两个json文件的差异
在CI中集成
可以在CI脚本中添加代码统计步骤:
# GitHub Actions示例
- name: Count code lines
run: |
cargo install tokei # 安装tokei
tokei -o json > code_stats.json # 生成代码统计JSON文件
完整示例
以下是一个完整的tokei使用示例,展示如何统计一个Rust项目并分析结果:
- 首先安装tokei:
cargo install tokei
- 统计项目代码:
cd ~/projects/my_rust_app
tokei --sort code --output json | jq '.Rust.stats'
- 查看结果(示例输出):
{
"blanks": 124,
"code": 1568,
"comments": 342,
"lines": 2034
}
- 生成代码行数最多的文件列表:
tokei -l rust -f -o json | jq -r '.Rust[] | "\(.stats.lines.code) \(.name)"' | sort -nr | head -5
- 示例输出:
487 src/main.rs
342 src/lib.rs
198 src/network/mod.rs
156 src/database/query.rs
123 src/utils/helpers.rs
总结
Tokei是一个功能强大且高效的代码统计工具,特别适合需要快速了解项目代码组成和规模的情况。它的Rust实现保证了运行速度,支持多种输出格式便于进一步处理,是开发者工具箱中的实用工具。