dsh-plugin-workbench:把 DSH 网页做成可编辑文件工作台

前言

在 DSH 工作流里,文件和消息常常需要一起使用:消息里引用一个路径、聊天时查看一张图片、临时改一处代码,或者从本地工作区移动、复制、重命名文件。如果这些操作都要离开 DSH Web,流程会频繁中断。

dsh-plugin-workbench 解决的就是这个问题:它在 DSH 网页中加入 VS Code 风格的工作台,包括文件树、可编辑代码预览、右键文件操作和图片内联预览。装上之后,DSH 网页可以作为一个轻量代码编辑器使用。

这是什么

dsh-plugin-workbenchPasumao 维护,许可证为 MIT

它定位为 DSH Web 的文件工作台插件,主要提供:

  • 左侧文件树侧栏
  • 可编辑代码预览
  • 标签页、行号栏、语法高亮
  • 右键文件操作
  • 图片内联预览
  • Markdown 渲染
  • 消息中 @ 引用工作区文件
  • 把文件拖入聊天输入框
  • 每工作区独立的撤销与偏好状态

已核实资料中的版本为 0.0.15Node 要求 >=18

核心能力

文件树与编辑视图

  • 文件树侧栏支持懒加载,并有 2 秒自动刷新。
  • 文件树展开状态按工作区独立保存。
  • 标签页支持多文件打开、拖拽排序、收起/弹出。
  • 亮暗主题可一键切换。
  • 编辑器左侧有行号栏,显示逻辑行号,并与文本滚动锁定对齐。

可编辑代码预览采用透明 textarea 叠加语法高亮的方式,支持 Ctrl/Cmd+S 保存。

语法高亮使用 highlight.js,已核实资料列出的支持范围包括:

JS/TS
Python
JSON
HTML
CSS
Shell

自动换行偏好会持久化,可在软换行和长行横向滚动之间切换。

文件操作

右键菜单提供 VS Code 风格的文件操作,包括:

  • 新建文件
  • 新建文件夹
  • 重命名
  • 删除
  • 复制路径
  • 复制
  • 剪切
  • 粘贴
  • 刷新
  • 在系统中打开
  • 在资源管理器打开

复制、剪切、粘贴支持 Ctrl/Cmd+C/X/V,也支持右键菜单和跨工作区粘贴。复制到同名目标时,会询问是否覆盖。

批量操作支持多选、批量删除、拖拽整组移动。

操作可撤销:

  • Ctrl+Z 或右上角撤销
  • 每工作区独立
  • 上限 30
  • 删除为可撤销删除

磁盘变更同步方面,外部修改打开的文件时,干净标签页会自动重读;带未保存编辑的标签页会显示重载徽标。

预览、引用与会话插入

图片预览支持:

png
jpg
gif
webp
avif
svg

图片内联渲染上限为 20MB,走同源路由:

/dsh-plugin-files/raw/<path>

该路由仅响应图片扩展名。

Markdown 渲染使用 markdown-it,原始 HTML 会被转义,相对路径图片经同源路由内联显示。

@ 引用文件时,可以在文件上选择“@ 在消息中引用”,把 @相对工作区路径 插入聊天输入框;发送后,消息中的相对路径会渲染为可点击链接。

拖文件进会话时,把文件从左栏拖到聊天区任意位置,路径文本会插入输入框光标处。

安装与启用

环境与配置要求

Node 要求:

>=18

插件无需环境变量或配置文件,无外部配置项。

行为偏好按工作区持久化,包括:

  • 自动换行
  • 亮暗主题
  • 标签布局
  • 文件树展开状态

安装命令

已核实资料给出两种安装命令。

npm 安装:

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

GitHub 安装:

dsh plugin --profile web add github:Pasumao/dsh-plugin-workbench

安装后重启 DSH Web

0.0.9 起,布局补丁自动检测并重打;0.0.15 起自动识别 npm 与 DSH Desktop 构建产物,DSH Desktop 开箱即用。

如果自动重打失败,例如锚点失效,可以执行:

node node_modules/dsh-plugin-workbench/scripts/patch-layout.mjs

然后重启 dsh web

卸载

卸载命令:

dsh plugin --profile web remove dsh-plugin-workbench

并还原布局 bundle。

典型用法

下面介绍几个常见操作。

1、打开工作区后,在左侧文件树中定位文件。

2、右键文件,选择“@ 在消息中引用”,把 @相对工作区路径 插入聊天输入框。

3、把文件从左栏拖到聊天区任意位置,路径文本会插入输入框光标处。

4、在编辑器中修改代码,使用:

Ctrl/Cmd+S

保存。

5、执行文件级复制、剪切、粘贴,使用:

Ctrl/Cmd+C
Ctrl/Cmd+X
Ctrl/Cmd+V

也可以使用右键菜单。

6、需要撤销最近操作时,使用:

Ctrl+Z

或右上角撤销按钮。

适用场景与注意

适合使用 dsh-plugin-workbench 的场景包括:

  • 在 DSH Web 中查看和编辑工作区文件
  • 在聊天中快速引用工作区文件路径
  • 预览图片、Markdown 和代码
  • 做简单的文件复制、移动、重命名、删除
  • 需要轻量文件操作和撤销能力

安装前需要注意:

  • 文件操作通道仅限 loopback RPC /dsh-plugin-files
  • 写操作显式以 danger-full-access 执行
  • 插件以当前 dsh 进程权限运行,安装前应检查源码与许可证,并确认当前 dsh 进程可访问目标工作区
  • DSH 升级会覆盖布局 bundle;插件启动时自动检测并重打补丁
  • 锚点失效时需要更新:
scripts/patch-layout.mjs
  • 本仓库不包含 DSH 编译产物
  • 部分源码与文档由 AI 辅助生成(DeepSeek Harness),经人工审查与实机验证
  • 权限相关逻辑已按最小权限原则复核

资源

GitHub 仓库:

https://github.com/Pasumao/dsh-plugin-workbench

当前已核实资料未提供可核实的目录页 URL;如需查找,建议以 GitHub 仓库为准。

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

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

Xiaoye