|
|
| 名称 |
code-stats |
| 描述 |
“使用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集成、语言支持