dsh-plugin-workbench 0.0.5 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +42 -1
- package/README.md +28 -5
- package/lib/client.js +6396 -155
- package/lib/client.js.map +1 -1
- package/lib/index.js +302 -5
- package/package.json +4 -2
- package/src/client/FileExplorer.tsx +538 -38
- package/src/client/FilePreview.tsx +182 -6
- package/src/client/files.module.css +279 -0
- package/src/client/highlight.ts +18 -1
- package/src/client/index.ts +23 -4
- package/src/client/locales.ts +48 -4
- package/src/client/markdown.ts +69 -0
- package/src/client/store.ts +132 -2
- package/src/index.ts +413 -7
package/CHANGELOG.md
CHANGED
|
@@ -4,7 +4,48 @@
|
|
|
4
4
|
格式基于 [Keep a Changelog](https://keepachangelog.com/zh-CN/1.1.0/),
|
|
5
5
|
版本号遵循 [Semantic Versioning](https://semver.org/lang/zh-CN/)。
|
|
6
6
|
|
|
7
|
-
## [
|
|
7
|
+
## [0.0.7] - 2026-08-19
|
|
8
|
+
|
|
9
|
+
### Fixed
|
|
10
|
+
|
|
11
|
+
- **跨工作区粘贴(复制冲突)不再报 Zod 校验错误**:复制/粘贴遇到目标已存在时,
|
|
12
|
+
host 端此前返回自定义错误码 `code: 'exists'`,而通用 RPC 通道的错误体受核心
|
|
13
|
+
封闭错误码联合校验(`rpcErrorSchema`)约束,客户端解析直接抛 `invalid_union`,
|
|
14
|
+
覆盖确认对话框根本不会出现。现改为在**成功值**中返回 `exists: true` 标志
|
|
15
|
+
(OS 文件管理器语义),客户端据此询问是否覆盖,行为不变、报错消除
|
|
16
|
+
|
|
17
|
+
## [0.0.6] - 2026-08-19
|
|
18
|
+
|
|
19
|
+
### Added
|
|
20
|
+
|
|
21
|
+
- **在资源管理器打开**:右键菜单新增「在资源管理器打开」
|
|
22
|
+
(`menu.revealInExplorer`,同 VS Code 的 Reveal in File Explorer),经
|
|
23
|
+
loopback RPC 的 `reveal` 端点把文件/文件夹定位到系统文件管理器——
|
|
24
|
+
文件在所在文件夹中被选中(Windows `explorer /select,`、macOS `open -R`),
|
|
25
|
+
文件夹直接打开(`explorer <dir>` / `open <dir>`);WSL 先经 `wslpath -w`
|
|
26
|
+
转译再交给 Windows 桌面,桌面 Linux 用 `xdg-open`(文件 → 父目录);
|
|
27
|
+
路径仍先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再执行
|
|
28
|
+
- **Markdown 渲染预览**:打开 `.md` 文件默认渲染(markdown-it,`html: false`
|
|
29
|
+
转义原始 HTML,代码块复用已注册的 highlight.js 语言高亮),标签栏按钮
|
|
30
|
+
一键切换回可编辑源码视图,再次点击切回渲染;相对路径图片自动重写到同源
|
|
31
|
+
字节路由 `/dsh-plugin-files/raw/<path>`,README 插图可直接显示;
|
|
32
|
+
超过 256KB 的 md 默认进源码视图并提示
|
|
33
|
+
- **打开文件磁盘变更检测**:宿主按标签集合对每个文件所在目录做 `fs.watch`
|
|
34
|
+
(父目录监听可存活编辑器原子重命名),事件按路径去抖后经同源 SSE 路由
|
|
35
|
+
`/dsh-plugin-files/events` 推送;干净的标签页自动重读同步,带未保存编辑的
|
|
36
|
+
标签页保留草稿并在标签上显示「⟳」徽标(点击重新加载、放弃未保存编辑);
|
|
37
|
+
插件自身保存会在短窗口内抑制回波,避免保存被当成外部变更
|
|
38
|
+
- **批量删除**:多选(Ctrl/⌘+点击、Ctrl+A)后,右键菜单显示「删除选中的
|
|
39
|
+
N 项」,Delete 键同样生效;先删子项再删父项,已删除文件夹下的项自动跳过
|
|
40
|
+
- **拖拽移动**:把文件/文件夹(含整个多选)拖到任意目录行上松手即移动;
|
|
41
|
+
拖到树空白区域 = 移入当前目录;目标目录高亮描边,文件夹拖进自身或自己
|
|
42
|
+
子目录自动忽略,拖到所在目录本身为无操作
|
|
43
|
+
- **操作可撤销**:右上角「↩」按钮或 Ctrl+Z 撤销最近的操作(每个工作区
|
|
44
|
+
独立、上限 30 条),覆盖:复制(撤销删除副本)、剪切/拖拽移动(撤销移回
|
|
45
|
+
原位并重定向已打开标签)、重命名(撤销改名)、新建(撤销移除)、删除。
|
|
46
|
+
删除改为「可撤销删除」:把项目瞬移(重命名)进其旁的隐藏 `.dsh-trash`
|
|
47
|
+
文件夹(不复制字节),撤销即移回原位;撤销栈溢出时自动清空被挤出条目的
|
|
48
|
+
回收站内容,回收站文件夹在树中隐藏显示
|
|
8
49
|
|
|
9
50
|
## [0.0.5] - 2026-08-17
|
|
10
51
|
|
package/README.md
CHANGED
|
@@ -6,8 +6,9 @@
|
|
|
6
6
|

|
|
7
7
|
|
|
8
8
|
**能直接改文件的 VS Code 风格工作台**——不是只读预览:文件树 + 可编辑代码预览
|
|
9
|
-
(语法高亮、标签页、行号栏)+ 右键文件操作(新建 / 重命名 / 删除 /
|
|
10
|
-
|
|
9
|
+
(语法高亮、标签页、行号栏)+ 右键文件操作(新建 / 重命名 / 删除 / 复制 / 剪切 /
|
|
10
|
+
粘贴 / 在系统中打开 / 在资源管理器打开)+ 图片内联预览,每个工作区独立保存状态。
|
|
11
|
+
装上之后,DSH 网页就是一个轻量代码编辑器。
|
|
11
12
|
|
|
12
13
|
> ⚠️ 安装后需打一个布局补丁(见下方安装节)。
|
|
13
14
|
|
|
@@ -16,14 +17,36 @@
|
|
|
16
17
|
- 文件树:懒加载、2 秒自动刷新、每工作区独立展开状态
|
|
17
18
|
- 文件图标:常见格式显示着色徽章(代码)/ emoji(图片、音视频、压缩包等),目录展开/收起区分
|
|
18
19
|
- 可编辑预览:透明 textarea 叠加语法高亮,`Ctrl+S`/`Cmd+S` 保存;
|
|
19
|
-
md
|
|
20
|
+
md 默认渲染预览(源码/渲染一键切换),.txt 等散文格式与超大代码文件
|
|
21
|
+
自动降级为纯文本编辑,加载快、不卡界面
|
|
22
|
+
- **磁盘变更同步**:打开的文件被外部修改(如 agent 或其它编辑器保存)时,
|
|
23
|
+
干净标签页自动重读,带未保存编辑的标签页显示「⟳」徽标(点击重新加载)
|
|
20
24
|
- **行号栏**:编辑器左侧逻辑行号,与文本滚动锁定对齐(纯文本/高亮模式均生效)
|
|
21
25
|
- **图片预览**:png/jpg/gif/webp/avif/svg 等直接内联渲染(同源字节路由,20MB 上限)
|
|
22
26
|
- **右键菜单**(VS Code 风格):文件/文件夹/空白区域均可右键——
|
|
23
|
-
|
|
27
|
+
新建文件、新建文件夹、重命名、删除(递归带确认)、复制路径、复制 / 剪切 / 粘贴、
|
|
28
|
+
刷新、在系统中打开、
|
|
29
|
+
在资源管理器打开(文件在所在文件夹中被选中,文件夹直接打开;
|
|
30
|
+
Windows `explorer` / macOS `open`,WSL 自动转译)
|
|
31
|
+
- **复制 / 剪切 / 粘贴**:Ctrl/Cmd+C/X/V(或右键菜单),支持跨工作区粘贴;
|
|
32
|
+
复制到同名已存在的目标时询问「是否覆盖」,与系统文件管理器一致;
|
|
33
|
+
剪切(移动)成功后自动清空剪贴板
|
|
34
|
+
- **批量操作**:Ctrl/Cmd+点击、Ctrl+A 多选,右键菜单/Delete 批量删除选中项,
|
|
35
|
+
拖拽整组移动
|
|
36
|
+
- **操作可撤销**:右上角「↩」或 Ctrl+Z 撤销最近操作(每工作区独立、上限 30 条):
|
|
37
|
+
复制(删副本)、剪切/拖拽移动(移回原位)、重命名、新建、删除;删除为可撤销删除
|
|
38
|
+
(瞬移进隐藏 `.dsh-trash`,不复制字节)
|
|
39
|
+
- **在资源管理器打开**:右键菜单项(同 VS Code 的 Reveal in File Explorer),
|
|
40
|
+
把文件/文件夹定位到系统文件管理器(Windows 资源管理器、macOS Finder 等),
|
|
41
|
+
经 loopback RPC 的 `reveal` 端点执行
|
|
24
42
|
- 自动换行:标签栏一键切换软换行(仅显示层换行,不改动文件内容)或长行横向滚动,偏好持久化
|
|
25
43
|
- 标签页:多文件、拖拽排序、收起/弹出;亮暗主题一键切换
|
|
26
|
-
- 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、Shell 等;
|
|
44
|
+
- 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、Shell 等;
|
|
45
|
+
Markdown 默认渲染预览,可切源码)
|
|
46
|
+
- Markdown 渲染:markdown-it(原始 HTML 一律转义不执行),相对路径图片经
|
|
47
|
+
同源路由 `/dsh-plugin-files/raw/<path>` 内联显示
|
|
48
|
+
- 磁盘变更:宿主对打开文件做 `fs.watch`(监听父目录,可存活原子重命名),
|
|
49
|
+
变更经 SSE `/dsh-plugin-files/events` 推送,干净标签自动同步
|
|
27
50
|
|
|
28
51
|
## 安装
|
|
29
52
|
|