dsh-ide-workbench:在 DSH 右侧栏里用 JetBrains 式工作台边聊边改

前言

DeepSeek Harness(DSH)的对话很适合「边聊边改」:模型能读仓库、跑命令,但实际操作时,人往往要在聊天、终端、文件管理器和外部 IDE 之间来回切。宿主侧栏能预览文件,却难以覆盖完整的项目树、提交面板、Git 历史和可交互终端这一整套日常开发动线。

下面介绍社区插件 dsh-ide-workbench(维护者 LiangshouX),它把 Project、Commit、Git、Terminal 四个工具窗和内置编辑器放进 DSH 右侧栏,并与当前会话同屏——聊天里的文件链接在工作台打开并定位行号,项目树和编辑器里可以把路径或选中代码 发送到聊天框。插件分类为客户端,npm 包名 dsh-ide-workbench,当前资料中的版本为 0.4.0,许可证 MIT,要求 DSH ≥ 0.1.7(DSH Desktop 0.2.x 或 Web profile 均可)。

这是什么

IDE Workbench 的定位是:把 JetBrains 风格 IDE 工作区搬进 DSH 右侧栏,且始终和当前会话在一起。Git 走系统 CLI(凭证管理器、hooks、git config 原样生效);终端是真实 PTY;文件读写有路径围栏,保存保留原编码与换行符。界面只用宿主主题令牌(--dsw-alias-*),明暗与皮肤跟随 DSH。

同一 DSH 工作区下的会话共享一份工作台状态(文件树、打开标签、Git 上下文);切换会话时终端进程与编辑器撤销栈会重建,DSH 重启不恢复终端会话。

核心功能

四个工具窗与内置编辑器

界面 能力概要
Project 惰性加载文件树,JetBrains 状态色(未跟踪 / 新增 / 已修改,目录递归染色);多选、拖拽移动;新建、重命名、删除(优先进回收站)、复制、移动;收藏夹、过滤与全项目文件名定位;右键 发送到聊天框。
内置编辑器 CodeMirror 6,语法高亮;自动 / 始终可编辑 / 始终只读三档;自动档下 1 MiB 以内文本可直接编辑,Markdown 默认进渲染预览。Ctrl+S 原子保存;外部改动可冲突条处理。
Commit Changes / Unversioned 分组勾选;变更列表与按目录分组;Change View 与 Diff;行/块级暂存;提交、提交并推送、Amend;可选 pre-commit 命令。
Git 分页提交表与泳道式 graph;过滤与详情抽屉;检出、回退、两提交 Compare;项目树可对路径定向看历史。
Terminal WebSocket + xterm.js 的真实 PTY;多会话、shell profiles;工作目录跟随项目根或当前文件。

查找、Diff 与 Markdown

  • 全项目查找:Ctrl+Shift+F(被外层占用时用 Ctrl+Alt+F),Aa / 全词 / 正则;快速打开:Ctrl+P 或 Ctrl+Shift+N。
  • Diff:并排 / 统一布局,单词级高亮;与工作区、修订或任意提交比较;可暂存/丢弃单个 hunk。
  • Markdown 预览:用宿主 MarkdownText 渲染,与 DSH 聊天排版一致;预览 / 源码 / 编辑切换,文档大纲可跳转。

与聊天协作

  1. 聊天中的 @ 引用与助手 Markdown 链接默认在工作台打开,并定位 #L24 这类行号;工作区外自动降级到 DSH 自带侧栏。
  2. 项目树或编辑器右键 发送到聊天框:文件/文件夹插入 @路径;选中代码时附带行号与代码块(依赖宿主向会话槽位发布聊天输入动作,未提供时会提示无法写入)。
  3. 设置 → IDE 工作台 可调整聊天文件链接行为、快捷键、git 路径、默认 shell、打开模式等;持久化在 $DSH_HOME/ide-workbench/settings.json(profile 目录由 DSH_PROFILE_DIR 决定时则用 profile 目录)。

IDEA 向快捷键(节选)

动作 快捷键
切换工具窗 Alt+1 Project · Alt+0 Commit · Alt+9 Git · Alt+F12 Terminal
聚焦提交 / 推送 Ctrl+K / Ctrl+Shift+K
全屏 / 停靠 F11
隐藏全部工具窗 Ctrl+Shift+F12

工具窗、提交、推送、查找与快速打开等可在 设置 → IDE 工作台 中重绑。

安装与启用

前置:DSH ≥ 0.1.7。插件已发布到 npm:dsh-ide-workbench。

DSH Desktop(推荐)

  1. 打开 设置 → 插件。
  2. 点 添加插件,包名填入 dsh-ide-workbench(可带版本,如 dsh-ide-workbench@0.4.0)。
  3. 安装后在会话头部点 IDE 工作台按钮,或侧栏底部常驻入口打开。

Desktop 的 profile 由 Electron 应用独占管理,dsh plugin --profile desktop ... 会被拒绝——桌面端请走插件页安装。

CLI / npm(例如 Web profile)

dsh plugin --profile web add dsh-ide-workbench

指定版本:

dsh plugin --profile web add dsh-ide-workbench@0.4.0

安装后重启该 profile;若 bundle 尚未启用,在 设置 → 插件 里打开 IDE Workbench。

从 GitHub 安装

dsh plugin --profile web add git+https://github.com/LiangshouX/dsh-ide-workbench.git

也可克隆仓库后从本地目录安装(README 给出的本地路径示例为 ./dsh-ide-workbench)。

安装后入口有三处:会话头部按钮、新建会话行、左侧栏底部动作。工作台是右侧栏原生 tab,可与聊天并排;首次打开会自动选择当前 DSH 工作区,项目面板头部可切换 IDE 项目根(工作区根或一级子目录)。

典型用法

  1. 打开工作台:点会话头部 IDE 图标,或 Alt+1 聚焦 Project。
  2. 选项目:项目面板下拉选择工作区根或某个一级子目录(含 .git 的子目录带 Git 徽标)。选择器只扫描工作区一级子目录,不递归发现仓库。
  3. 日常动线:双击文件打开;Ctrl+Shift+F 搜代码;Alt+0 提交;Alt+F12 开终端;Ctrl+K 写提交信息。

当 DSH 工作区是容器、Git 仓库在一级子目录时,四个窗口在非仓库根下会引导「选择 Git 子项目」;切换项目根后,Project 树、Git/Commit、新终端 cwd 与标签状态一并切换。

适用场景与注意

适合:希望在 DSH 内完成「看树 → 改文件 → 看 Diff → 提交 → 跑终端」,且希望聊天引用与编辑器同屏联动的开发者。

权限与安全:插件以当前 DSH 进程权限运行;HTTP / WebSocket 路由经过与 /api 相同的 Connection 准入围栏。安装前建议阅读 GitHub 仓库 源码与 MIT 许可证。

已知限制(README 原文):不做交互式 rebase、merge 冲突三方编辑、stash、blame、fetch/pull、分屏终端;Markdown 预览暂不重写相对图片/链接为本地路径;发送到聊天框在宿主未提供输入槽位时会提示失败。

DSH 生态是「一切皆插件」;社区目录 SkillHub 插件页 为独立站点,与 DeepSeek / 幻方无官方从属关系。

结尾

经过上面的步骤,你可以在 DSH 右侧栏获得接近 JetBrains 的四窗工作流,并与会话聊天双向引用文件和代码行,减少窗口切换。详情与截图见仓库 README;安装与 issue 以 GitHub 为准。

  • 目录页:https://www.skillhub.cn/plugins/LiangshouX/dsh-ide-workbench
  • GitHub:https://github.com/LiangshouX/dsh-ide-workbench
羽毛球分组比赛记分
小程序二维码

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

小夜