SuperAPI AI 工具集

loc-report

测试与质量

查看项目

更新于 10-16 01:33

技能介绍

用途:loc-report 通过一个脚本 scripts/loc/loc_history.py 回答两个问题。breakdown(默认行为之一)按 SPM 模块、主应用、应用扩展和手表应用分组,统计当前工作树中 Swift 代码量,并区分生产代码与测试代码。chart 则根据 git 历史生成生产代码与测试代码的折线图,嵌入 documentation/Module-Architecture.md 的 Codebase size 部分。

主要能力与用法: python3 scripts/loc/loc_history.py 输出 breakdown 表格,然后刷新图表。 python3 scripts/loc/loc_history.py breakdown 仅输出快照表格,只读,不写文件。 python3 scripts/loc/loc_history.py chart 仅刷新 CSV、SVG 和 PNG。 脚本仅使用标准库;PNG 步骤调用 rsvg-convert(brew install librsvg)。若缺少该工具,脚本会打印手动转换命令,并仍然写入 CSV 和 SVG。

计数规则:一行代码指非空且不以 // 开头的 Swift 源码行;忽略 Package.swift。文件位于 Tests 目录、TestUtilities 模块下,或文件名以 Tests.swift / Spec(s).swift 结尾时算测试,否则算生产。breakdown 与 chart 共用此规则,因此两者总量可对账,小幅差异来自未提交的工作树修改。该规则不剥离 / ... */ 块注释,因此总数略高于 cloc,这是有意为之,以与历史图表保持一致。

输出文件:scripts/loc/loc_history.py 为脚本;scripts/loc/loc_history.csv 保存每日 date、loc_prod、loc_test,每次运行从 git 历史重新生成;scripts/loc/loc_history.svg 为中间渲染;documentation/assets/loc_history.png 为提交的图表,被 documentation/Module-Architecture.md 引用。图表遍历 git log,取每个日历日的最后一次提交,因此只有当天工作已提交后刷新才会新增数据点;工作树 breakdown 则立即反映未提交改动。

刷新图表时还应提交 documentation/assets/loc_history.png、CSV 和 SVG,并复查 documentation/Module-Architecture.md 中 Codebase size 的说明文字,如生产代码跨越整数关口需同步更新约 57k 行的描述。此脚本是过去 Update LOC history chart 提交背后的例行任务,适合在模块化抽取或测试覆盖率推进后运行,以保持图表最新。限制:依赖 git 历史才能生成图表数据点;未提供跨平台兼容性、安装方式或除上述命令外的其他用法信息。