Project Heatmap(项目文件热力图)
在编辑器中生成一个“项目文件热力图”面板:用矩形树图(Treemap)展示项目里每个文件的体积与热度,帮助你快速定位“大文件 / 热点文件”。
- 矩形面积:文件行数(越大代表代码体积越大)
- 颜色热度:Git 提交触达次数(越热越偏橙/黄)
快速开始
- 在 VS Code 中打开一个文件夹或工作区(Workspace)。
- 打开命令面板:
- macOS:
Cmd+Shift+P
- Windows/Linux:
Ctrl+Shift+P
- 运行命令:
显示项目文件热力图 (showHeatmap)
- 在面板内操作:
- 点击“刷新热力图”:重新扫描项目与 Git 历史
- 滑动“色彩倾向(冷/热)”:调整颜色对比(更容易看出热点差异)
- 悬停矩形:查看文件路径、行数、提交触达等信息
- 点击矩形:直接打开对应文件
读图与口径
- 面积(体积):文件行数(按文本换行符统计;二进制文件按 1 行处理)
- 热度(颜色):Git 历史中该文件路径出现的次数(不追踪重命名)
- 非 Git 项目:仍会显示“体积(行数)”,但热度统一为 0
配置
本扩展提供 1 个配置项,用于排除不想纳入统计/渲染的文件。
projectHeatmap.excludePatterns
- 类型:
string[]
- 默认值:
["pnpm-lock.yaml","Cargo.lock","yarn.lock","package-lock.json","npm-shrinkwrap.json"]
- 支持:文件名或简单通配符
*
示例(settings.json):
{
"projectHeatmap.excludePatterns": [
"pnpm-lock.yaml",
"*.min.js",
"dist/*",
"*/generated/*"
]
}
匹配规则说明:
- pattern 不包含
/ 时:按“文件名”匹配(例如 Cargo.lock、*.min.js)
- pattern 包含
/ 时:按“相对路径”匹配(例如 dist/*)
- 仅支持简单
* 通配(会被当作“任意字符序列”处理)
需求与建议
- 若希望显示“热度(提交触达次数)”,需要项目是 Git 仓库且本机可用
git 命令。
- 大型仓库首次生成可能较慢,建议通过
excludePatterns 排除构建产物、依赖目录、生成文件等。
常见问题
为什么所有文件颜色都很冷/几乎一样?
通常是以下原因之一:
- 当前工作区不是 Git 仓库(或无法执行
git),热度会全部为 0
- Git 历史较少或文件变更集中在少数文件
点击矩形没有打开文件?
请确认该文件仍存在于当前工作区中,并且没有被 VS Code 的权限/只读工作区限制拦截。
| |