dsh-vscode-ide:DSH 上的 Monaco 浮动工作台

前言

在 DeepSeek Harness(DSH)里写代码、看 diff、跑 Git 和终端,常见做法是装侧边栏里的编辑器插件。侧边栏会占对话区域宽度;有的方案用 CodeMirror,体积更小,但编辑手感与 VS Code 不一致;dsh-vscode-mode 等功能更全,包体约 27 MB,仍 dock 在右侧。若你希望保留 Monaco 的日常编辑体验,又不想让工作台挤占会话面板,可以单独装一个客户端插件:beiryang/dsh-vscode-ide。

这是什么

dsh-vscode-ide 是面向 DeepSeek Harness 的 VS Code 风格工作台:编辑器核心是 Monaco(与 VS Code 同源),界面是可拖动的独立浮动窗口,功能以内置模块按需呈现,并对外提供 ctx.vscodeIde 服务。它不是 VS Code 移植版,不能加载 .vsix 扩展。维护者为 beiryang,在 DSH 插件目录中归类为客户端;仓库 GitHub 采用 MIT 许可证。README 自述包体约 11 MB,相对同生态里 dock 在侧栏的 Monaco 方案更侧重「编辑手感 + 不抢对话宽度」。

与其他编辑器插件的差异

README 用表格概括了取舍(布局、编辑器、扩展性、体积)。dsh-vscode-ide 的浮动工作台不会挤压会话区;编辑器为 Monaco;扩展方式为内置模块加公开服务,而非完整 extension host / LSP / SVN 全家桶。若你需要 LSP、SVN、扩展管理器,应看 dsh-vscode-mode;若只要极轻量文件树或 Git 审查,可看 dsh-ide / dock 系列。

核心功能

以下能力均来自仓库 README(Features 1.1)与 package.json 描述,按使用场景归纳。

浮动窗口与 Peek

工作台可拖动、八向缩放、最大化;顶部保留约 44px 安全条,便于点到 DSH 自身窗口按钮;几何位置会记住。Ctrl+Alt+Q 进入 Peek:隐藏工作台以便阅读对话,再按一次恢复,编辑状态、滚动与光标保持;也可拖动浮动按钮实现同样切换。

文件与编辑

文件资源管理器跟随当前会话工作目录,目录懒加载;远程工作区经 SFTP 访问。支持右键新建/重命名/删除、复制路径、在系统文件管理器中Reveal,拖拽移动文件,键盘 ↑/↓/Enter/F2/Delete 操作。Monaco 按需加载 ESM,每个文件一个 ITextModel,切标签不丢未保存内容。标签:单击预览(斜体)、双击固定、拖拽排序;面包屑可浏览同级与目录。分屏编辑同一 model,改动与撤销同步。Ctrl+S 临时文件加原子重命名保存,Ctrl+W 关闭,脏标记与关闭确认;未保存缓冲写入 localStorage: dsv:drafts.v1,重启后恢复。

搜索、问题与 diff

Ctrl+F 为 Monaco 查找替换。Ctrl+Alt+P / Ctrl+Alt+Shift+P 为快速打开与命令面板(Ctrl+P 留给 DSH)。Ctrl+Alt+Shift+F 打开工作区内容搜索/替换面板;仓库内用 git grep,否则有界文件遍历(README 注明本地工作区为主)。Ctrl+Alt+Shift+M 或标题栏问题徽章查看 Monaco 诊断。Diff 支持对磁盘、对 HEAD、或两文件互比。

Git 与终端

Source Control 为 VS Code 风格:分支、暂存区、提交下拉(staged / all / commit-and-push)、discard、push,以及带 lane 的 commit graph 与右键菜单(复制 hash、checkout、建分支、revert 等)。远程工作区上 Git 命令经 SSH 在服务端执行;根目录非仓库时可选择子目录作为仓库。SSH 终端基于 xterm.js 与真实 PTY,可多会话;默认在编辑列下方(可拖分隔条、可 dock 到右侧)。连接信息可复用 dsh-remote-ssh;否则通过「+SSH」填 host/user/key 或密码(密码不存储)。本地还提供基于 ConPTY 的 PowerShell 会话。主题可跟随 DSH、内置 One Dark Pro,或导入 VS Code 主题 JSON;图标可内置 Material Icon Theme 或导入 VS Code 图标主题。设置项含字体、换行、终端字体等,持久化且无需重开标签。

环境与诊断

可在控制台执行 await __dsv.probe()(probe(true) 将结果写入文件),用于环境探测。

安装与启用

npm 发布因区域限制尚未完成,README 要求暂从 GitHub Releases 安装。安装前请自行查看仓库源码与 MIT 许可证;插件随当前 DSH 进程权限运行。

从 GitHub Releases

  1. 在 Releases 下载 dsh-vscode-ide-1.0.0.tgz。
  2. 解压并运行捆绑安装脚本:
tar -xzf dsh-vscode-ide-1.0.0.tgz
cd package
node install.mjs

install.mjs 会检测已包含该插件的 profile,否则回退到默认 desktop profile;需要指定目录时传入 --profile "<dir>"。

  1. 完全退出 DSH(托盘图标 → Quit)后重新启动——客户端 bundle 仅在启动时加载。

package.json 要求 Node >= 20、dsh >= 0.1.3-alpha.2;插件面向 web 客户端平台(dsh.client.platform: web)。

从源码(开发)

npm install
npm run build
node install.mjs

构建会生成未纳入仓库的 vendor/ 与 lib/client.js。

npm(发布后)

README 预留命令为:

dsh plugin --profile web add dsh-vscode-ide

发布前请勿假设该命令可用。

卸载

node install.mjs --remove

卸载后 localStorage 中的窗口几何、主题、标签等数据仍保留。

典型用法

  • 左侧边栏点击 Code Space 打开或关闭工作台(窗口被拖出屏幕时仍可用)。
  • Ctrl+Alt+I 切换工作台;Ctrl+Alt+Q Peek 对话;Ctrl+Alt+Shift+F 打开内容搜索。
  • 浮动按钮与 Ctrl+Alt+Q 行为一致,位置会记住。
  • 标题栏:⌕ 快速打开,> 命令面板等(完整快捷键见 README.zh.md / README)。

适用场景与注意

适合:在 DSH 里长时间改代码、看 Git 历史与 diff、在浮动窗里开 SSH/本地终端,且希望 Monaco 手感、又不想侧栏编辑器挤占对话宽度。

注意:

  • 不是 VS Code,不能装 .vsix;需要 LSP、SVN 或扩展市场时请选其他插件。
  • 远程 Git/终端在服务器执行,本地工作区连 SSH 时 README 会一次性提醒「命令在远端、工作区仍在本地」。
  • 内容搜索在非 Git 场景下对远程工作区的支持 README 标注为「local workspaces only for now」。
  • 安装包版本以 Releases 文件名为准(示例为 1.0.0.tgz);npm 包 package.json 当前为 1.1.10,与 release 文件名可能不同,以你下载的安装包为准。

结尾

dsh-vscode-ide 把多标签 Monaco 编辑、diff、Git、SSH/本地终端收进可移动的浮动工作台,并刻意不做 VS Code 扩展宿主,以控制体积且不占用会话侧栏。插件目录页:skillhub.cn/plugins/beiryang/dsh-vscode-ide;源码与文档:github.com/beiryang/dsh-vscode-ide。DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

小夜