name: code-stats description: “使用tokei(按语言快速统计代码行数)和difft(基于AST的语义化差异对比)分析代码库。无需手动统计即可快速获取项目概览。触发条件:代码库规模、统计代码行数、查看语言分布、显示语义化差异、文件对比、代码统计。” compatibility: “需要安装tokei和difft命令行工具。安装方法:brew install tokei difft(macOS)或cargo install tokei difftastic(跨平台)。” allowed-tools: “Bash”
代码统计
快速分析代码库规模、构成及变更。
tokei - 代码行数统计
# 统计所有代码
tokei
# 紧凑输出并按代码行数排序
tokei --compact --sort code
# 指定语言
tokei --type=TypeScript,JavaScript
# 排除目录
tokei --exclude node_modules --exclude dist
# JSON输出用于脚本处理
tokei --output json | jq '.Total.code'
示例输出
===============================================================================
语言 文件数 总行数 代码行 注释行 空行
===============================================================================
TypeScript 45 12847 9823 1456 1568
JavaScript 12 2341 1876 234 231
-------------------------------------------------------------------------------
总计 57 15188 11699 1690 1799
===============================================================================
difft - 语义化差异对比
# 对比文件
difft old.ts new.ts
# 行内模式
difft --display=inline old.ts new.ts
# 与Git集成
GIT_EXTERNAL_DIFF=difft git diff
GIT_EXTERNAL_DIFF=difft git show HEAD~1
为何选择语义化对比?
| 传统差异对比 | difft |
|---|---|
| 逐行对比 | 基于AST理解 |
| 移动代码显示为删除+新增 | 识别代码移动 |
| 对空格敏感 | 忽略格式变化 |
快速参考
| 任务 | 命令 |
|---|---|
| 统计所有代码 | tokei |
| 紧凑输出 | tokei --compact |
| 按代码行排序 | tokei --sort code |
| 仅TypeScript | tokei -t TypeScript |
| JSON输出 | tokei --output json |
| 排除目录 | tokei --exclude node_modules |
| 语义化差异对比 | difft file1 file2 |
| Git差异对比 | GIT_EXTERNAL_DIFF=difft git diff |
使用场景
- 快速获取代码库概览
- 语义化对比代码变更
- 理解项目构成
- 评估重构影响
- 追踪代码库增长
扩展资源
如需详细模式,请加载:
./references/tokei-advanced.md- 过滤、输出格式、CI集成./references/difft-advanced.md- 显示模式、Git集成、语言支持