SuperAPI AI 工具集

code-stats

编程与开发

查看项目

更新于 10-13 16:38

技能介绍

用途

code-stats 用于快速分析代码库的规模、组成与变更,无需手动计数即可获得项目概览。它结合两个命令行工具:tokei(按语言快速统计行数)和 difft(语义化、AST 感知的差异比较)。

主要能力

tokei:行数统计

可统计全部代码,输出各语言的文件数、总行数、代码行、注释行与空行。常用方式包括:

  • tokei:统计所有代码。
  • tokei --compact --sort code:紧凑输出并按代码量排序。
  • tokei --type=TypeScript,JavaScript:仅统计指定语言。
  • tokei --exclude node_modules --exclude dist:排除指定目录。
  • tokei --output json | jq '.Total.code':输出 JSON 以便脚本处理。

示例输出会列出各语言的文件数、Lines、Code、Comments、Blanks,并在 Total 行给出合计。

difft:语义化差异

  • difft old.ts new.ts:比较两个文件。
  • difft --display=inline old.ts new.ts:使用内联模式。
  • GIT_EXTERNAL_DIFF=difft git diff:与 git diff 配合。
  • GIT_EXTERNAL_DIFF=difft git show HEAD~1:查看指定提交。

与传统的逐行 diff 相比,difft 是 AST 感知的:传统 diff 将移动识别为删除加新增,且对空白敏感;difft 能识别代码移动并忽略格式差异。

使用方式(快速参考)

任务 命令
统计全部代码 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 集成、语言支持)。

限制

资料未说明安装方法、支持的操作系统、对具体语言覆盖的完整列表、性能数据或收费信息,暂未提供。