10 · 编辑器
状态:✅ 已实现 · 范围:v1 · 工程参考:
../spec.md
GitTreeDesk 内置编辑器用于查看与轻量编辑,刻意保持精简——深度代码智能、重构与格式化交给 VSCode,一键可达。
打开与关闭文件
- 在 Explorer 中点击文件,或用快速打开(
Ctrl/Cmd+P)跳转到工作区任意文件(遵守exclude)。 - 文件以标签形式在编辑区打开;打开列表对未保存改动显示圆点标记。标签右键菜单:关闭、关闭其他、全部关闭、复制路径、在 Explorer 中定位。
- diff(第 03 页)、提交 diff(第 09 页)与设置都作为独立标签出现在同一区域。
保存
Ctrl/Cmd+S原子保存(写临时文件再改名;崩溃不会产生截断文件)。- 外部变更会被检测(标签打开期间被其他工具 改动):聚焦时与保存前,GitTreeDesk 会比较磁盘上的文件并弹出冲突对话框——覆盖 / 从磁盘重新加载 / 查看 diff。绝无静默覆盖。
- 超过 10 MB 的文件在确认后以只读打开。二进制文件:图片给预览;其他类型提供"在外部打开"。
语言能力
- 语法高亮覆盖内置语言集(按需加载——打开应用不必为全部语言买单)。
- TypeScript / JavaScript 提示:内置 TS worker 提供文件级的补全、悬停与诊断,配置尽力而为——取自就近的
tsconfig.json(compilerOptions+ 标准库)。 - v1 已知限制:不解析
node_modules类型,也没有跨文件的工程语义。需要工程级智能提示时使用下面的逃生口。 - 在 VSCode 中打开——每个文件的工具栏按钮(及 Explorer 右键菜单):在 VSCode 中于当前行打开文件(
code --goto <路径>:<行号>)。命令可在设置中配置(如code-insiders或其他分支)。命令不存在时,回退为在系统文件管理器中定位该文件。
编辑设置(完整清单)
| 设置 | 默认 |
|---|---|
| 字号 / 字体 | 13 / 平台默认等宽字体 |
| Tab 宽度、插入空格 | 2,空格 |
| 自动换行 | diff 查看器开,普通文件关 |
| Minimap | 关 |
编辑器刻意不做的事(v1)
- 不做保存时格式化 / 无 linter / 无任务 / 无调试器。
- 除内置基础能力外,无多根工作区或多光标插件生态。
- 无扩展体系。
- 无重构命令——请用"在 VSCode 中打开"。
边界情况
- 合并产生的冲突标记会被高亮,边栏提供 采纳 ours / theirs / 两者(第 06 页)。
- 打开期间文件在磁盘上被删除 → 标签显示"已删除"状态,可保存(重建)或关闭。
- 磁盘与编辑器同时被修改 → 上述保存冲突对话框;"查看 diff"以编辑器 vs 磁盘的内联 diff 呈现。