Skip to content

LiRenTech/vscode-project-heatmap

Repository files navigation

Project Heatmap(项目文件热力图)

在编辑器中生成一个“项目文件热力图”面板:用矩形树图(Treemap)展示项目里每个文件的体积与热度,帮助你快速定位“大文件 / 热点文件”。

  • 矩形面积:文件行数(越大代表代码体积越大)
  • 颜色热度:Git 提交触达次数(越热越偏橙/黄)

快速开始

  1. 在 VS Code 中打开一个文件夹或工作区(Workspace)。
  2. 打开命令面板:
    • macOS:Cmd+Shift+P
    • Windows/Linux:Ctrl+Shift+P
  3. 运行命令:显示项目文件热力图 (showHeatmap)
  4. 在面板内操作:
    • 点击“刷新热力图”:重新扫描项目与 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 的权限/只读工作区限制拦截。

About

直观展示项目文件的热力图,显示文件体积与修改频率热度

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors