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://tokei.rs/b1/github/XAMPPRocky/tokei)](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项目并分析结果:

  1. 首先安装tokei:
cargo install tokei
  1. 统计项目代码:
cd ~/projects/my_rust_app
tokei --sort code --output json | jq '.Rust.stats'
  1. 查看结果(示例输出):
{
  "blanks": 124,
  "code": 1568,
  "comments": 342,
  "lines": 2034
}
  1. 生成代码行数最多的文件列表:
tokei -l rust -f -o json | jq -r '.Rust[] | "\(.stats.lines.code) \(.name)"' | sort -nr | head -5
  1. 示例输出:
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实现保证了运行速度,支持多种输出格式便于进一步处理,是开发者工具箱中的实用工具。

回到顶部