GitGlacier
GitGlacier 是一个本地优先、只读的 VS Code 桌面扩展,在当前行末直接显示 Git blame 信息。
v0.1 功能
- 在活动编辑器主光标所在行末显示作者和本地化提交时间。
- 悬浮注解可查看完整提交哈希、作者、时间和摘要。
- 编辑未保存文件时,使用当前编辑器缓冲区执行 blame,不读取磁盘旧内容。
- 光标、活动编辑器、文档内容、保存状态或相关设置变化时自动刷新。
- 新请求会取消旧 Git 进程,过期结果不会覆盖当前行。
- 非 Git 文件、未跟踪文件、空文件和无历史的新行不显示注解,也不弹出错误提示。
安全与隐私
- 扩展运行在 workspace Extension Host,并只调用该 Host 所在环境中的 Git CLI 查询信息;不修改仓库。
- 不上传代码,不发送遥测,不调用网络服务。
- Git 参数通过数组传递并禁用 shell,不拼接命令字符串。
- 仅处理受信任工作区中的
file URI;Restricted Mode 下不启动 Git,不支持虚拟工作区和 Web Extension 环境。
系统要求
- VS Code 桌面版 1.76.0 或更高版本。
- 已安装 Git,并可通过
PATH 或 VS Code 机器级 git.path 设置找到。
- 受信任的工作区和本地 Git 仓库。
安装
当前构建产物为仓库根目录下的 gitglacier-current-line-blame-0.1.1.vsix。
- 在 VS Code 的扩展视图中打开“更多操作”菜单。
- 选择“从 VSIX 安装…”,然后选择
gitglacier-current-line-blame-0.1.1.vsix。
也可以使用命令行:
code --install-extension ./gitglacier-current-line-blame-0.1.1.vsix
使用
打开受 Git 跟踪的本地文件并移动主光标,当前行末会显示 blame 注解;将鼠标悬浮在注解上可查看完整信息。诊断信息写入 VS Code 的 GitGlacier 输出通道。
命令与设置
| 名称 |
作用 |
GitGlacier: Toggle Current Line Blame (gitglacier.toggleCurrentLineBlame) |
切换当前窗口中的注解显示状态 |
gitglacier.currentLine.enabled |
布尔设置,默认 true,控制当前窗口是否显示注解 |
开发与验证
npm install
npm run check
npm test
npm run compile
npm run package
npm run check:执行严格 TypeScript 类型检查。
npm test:编译并运行 Node.js 测试,单项测试超时为 60 秒。
npm run compile:生成扩展 JavaScript。
npm run package:生成可安装的 VSIX。
当前限制
- 只处理主光标,不为多光标分别查询。
- 只处理
file URI;不支持使用非 file URI 的 Remote SSH、WSL 和 Dev Container 文档。
- 未跟踪文件、空文件及无历史的新行不显示注解。
- 不提供提交历史、图形视图、侧边栏、Webview、Worktree 管理或仓库写操作。
更完整的实现范围、技术决策和验收标准见 开发文档。
| |