跳到主要内容

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 呈现。