dsh-plugin-workbench 0.0.3 → 0.0.5
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 +54 -0
- package/README.md +17 -7
- package/lib/client.js +641 -160
- package/lib/client.js.map +1 -1
- package/lib/index.js +169 -6
- package/package.json +1 -1
- package/src/client/FileExplorer.tsx +357 -64
- package/src/client/FilePreview.tsx +171 -34
- package/src/client/files.module.css +144 -3
- package/src/client/index.ts +5 -1
- package/src/client/locales.ts +30 -0
- package/src/client/store.ts +25 -0
- package/src/dsh.d.ts +9 -0
- package/src/index.ts +204 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,60 @@
|
|
|
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
|
+
## [Unreleased]
|
|
8
|
+
|
|
9
|
+
## [0.0.5] - 2026-08-17
|
|
10
|
+
|
|
11
|
+
### Added
|
|
12
|
+
|
|
13
|
+
- **图片预览**:打开 png/jpg/jpeg/gif/webp/avif/bmp/ico/svg 直接在预览栏渲染,
|
|
14
|
+
不再显示「二进制文件」提示。字节经同源路由 `/dsh-plugin-files/raw/<path>`
|
|
15
|
+
提供:宿主先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再读字节,
|
|
16
|
+
仅限图片扩展名、20MB 上限;加载失败显示内联提示,切换标签自动复位
|
|
17
|
+
- **编辑器行号栏**:左侧逻辑行号(VS Code 风格,软换行下仍按源行编号),
|
|
18
|
+
与编辑区滚动逐帧锁定对齐;纯文本模式(md/txt/大文件)同样生效
|
|
19
|
+
- **右键菜单(VS Code 风格)**:
|
|
20
|
+
- 文件:打开预览 / 复制路径 / 在系统中打开 / 重命名 / 删除
|
|
21
|
+
- 文件夹:新建文件 / 新建文件夹 / 复制路径 / 在系统中打开 / 刷新 /
|
|
22
|
+
重命名 / 删除(递归删除带确认)
|
|
23
|
+
- 空白区域:新建文件 / 新建文件夹 / 复制路径 / 刷新
|
|
24
|
+
- 菜单自动夹紧视口;点击外部 / Esc / 窗口失焦自动关闭;操作失败在
|
|
25
|
+
对应目录行内联红色提示;重命名/删除自动维护已打开的标签页
|
|
26
|
+
|
|
27
|
+
### Changed
|
|
28
|
+
|
|
29
|
+
- 宿主 RPC 通道新增 `createFile` / `createDir` / `rename` / `delete` 四个
|
|
30
|
+
端点(node:fs 实现,经 `ctx.fs.resolve` 统一解析;rename 拒绝覆盖已存在
|
|
31
|
+
目标,delete 按 stat 决定递归);`rpc.handle` 注册改为 effect 包裹,
|
|
32
|
+
HMR/停用循环不再泄漏路由
|
|
33
|
+
|
|
34
|
+
### Fixed
|
|
35
|
+
|
|
36
|
+
- **右键菜单文字看不清**:maid-atelier 皮肤对 `[role='menu']` 有全局规则,
|
|
37
|
+
会把菜单文字色劫持为「页面主题」色,而菜单背景跟随「workbench 主题」,
|
|
38
|
+
两者不一致时文字与背景同色系。菜单颜色现已锁定到 workbench 主题变量
|
|
39
|
+
(`!important`),任何皮肤组合下文字都与背景保持对比
|
|
40
|
+
|
|
41
|
+
## [0.0.4] - 2026-08-17
|
|
42
|
+
|
|
43
|
+
### Fixed
|
|
44
|
+
|
|
45
|
+
- 长中文文本(如小说 .txt)预览卡顿:无语法高亮的文件不再渲染高亮叠加层,
|
|
46
|
+
直接由 textarea 显示文本;代码文件超过 64KB 自动降级为纯文本编辑,
|
|
47
|
+
避免每次按键重新注入并布局几十万字符的两层文本
|
|
48
|
+
- **md 文件一律以纯文本模式显示**(不再做语法高亮叠加):20KB+ 的 md 加载
|
|
49
|
+
从约 60ms 降到约 10ms,彻底消除 md 的拖选错位与加载卡顿;大文件加载时
|
|
50
|
+
先让浏览器绘制一帧再渲染内容,界面不再在打开文件的同一帧内冻结
|
|
51
|
+
- md 长文本:去掉悬停时反复弹出的「Ctrl+S 保存」提示;高亮层加粗改为
|
|
52
|
+
纯颜色强调(粗体改变字宽会导致拖选时高亮层与文本换行错位),并增加
|
|
53
|
+
每帧滚动锁定,保证拖选自动滚动时两层始终对齐
|
|
54
|
+
- **拖选错位根因**:textarea 底部会预留约一行给光标,导致其可滚动范围比
|
|
55
|
+
高亮层大,长文件滚到接近底部时高亮层文本比选中框低约一行(选中框浮在
|
|
56
|
+
显示文本上方)。已给高亮层补齐等量底部滚动余量,两层滚动范围完全一致
|
|
57
|
+
- 打开/切换含大量文件的目录不再卡顿:文件树行改为 memo 组件,点击文件
|
|
58
|
+
只重渲染受影响的单行(此前每次点击都重渲染整棵文件树);切换工作区时
|
|
59
|
+
恢复已展开目录改为分批加载
|
|
60
|
+
|
|
7
61
|
## [0.0.3] - 2026-08-16
|
|
8
62
|
|
|
9
63
|
### Added
|
package/README.md
CHANGED
|
@@ -1,22 +1,29 @@
|
|
|
1
1
|
# dsh-plugin-workbench
|
|
2
2
|
|
|
3
|
+

|
|
3
4
|

|
|
4
5
|

|
|
5
|
-

|
|
6
6
|

|
|
7
|
-

|
|
8
7
|
|
|
9
|
-
|
|
10
|
-
|
|
8
|
+
**能直接改文件的 VS Code 风格工作台**——不是只读预览:文件树 + 可编辑代码预览
|
|
9
|
+
(语法高亮、标签页、行号栏)+ 右键文件操作(新建 / 重命名 / 删除 / 在系统中打开)+
|
|
10
|
+
图片内联预览,每个工作区独立保存状态。装上之后,DSH 网页就是一个轻量代码编辑器。
|
|
11
|
+
|
|
12
|
+
> ⚠️ 安装后需打一个布局补丁(见下方安装节)。
|
|
11
13
|
|
|
12
14
|
## 功能
|
|
13
15
|
|
|
14
16
|
- 文件树:懒加载、2 秒自动刷新、每工作区独立展开状态
|
|
15
17
|
- 文件图标:常见格式显示着色徽章(代码)/ emoji(图片、音视频、压缩包等),目录展开/收起区分
|
|
16
|
-
- 可编辑预览:透明 textarea 叠加语法高亮,`Ctrl+S`/`Cmd+S`
|
|
18
|
+
- 可编辑预览:透明 textarea 叠加语法高亮,`Ctrl+S`/`Cmd+S` 保存;
|
|
19
|
+
md/.txt 等散文格式与超大代码文件自动降级为纯文本编辑,加载快、不卡界面
|
|
20
|
+
- **行号栏**:编辑器左侧逻辑行号,与文本滚动锁定对齐(纯文本/高亮模式均生效)
|
|
21
|
+
- **图片预览**:png/jpg/gif/webp/avif/svg 等直接内联渲染(同源字节路由,20MB 上限)
|
|
22
|
+
- **右键菜单**(VS Code 风格):文件/文件夹/空白区域均可右键——
|
|
23
|
+
新建文件、新建文件夹、重命名、删除(递归带确认)、复制路径、刷新、在系统中打开
|
|
17
24
|
- 自动换行:标签栏一键切换软换行(仅显示层换行,不改动文件内容)或长行横向滚动,偏好持久化
|
|
18
25
|
- 标签页:多文件、拖拽排序、收起/弹出;亮暗主题一键切换
|
|
19
|
-
- 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、
|
|
26
|
+
- 语法高亮:highlight.js(JS/TS、Python、JSON、HTML、CSS、Shell 等;Markdown 以纯文本显示)
|
|
20
27
|
|
|
21
28
|
## 安装
|
|
22
29
|
|
|
@@ -53,7 +60,10 @@ dsh plugin --profile web remove dsh-plugin-workbench
|
|
|
53
60
|
|
|
54
61
|
## 说明
|
|
55
62
|
|
|
56
|
-
- `/dsh-plugin-files` RPC 通道仅限 loopback;写操作显式以 `danger-full-access`
|
|
63
|
+
- `/dsh-plugin-files` RPC 通道仅限 loopback;写操作显式以 `danger-full-access` 执行;
|
|
64
|
+
右键菜单的新建/重命名/删除同样经该通道(loopback 信任,与编辑器保存一致)
|
|
65
|
+
- 图片预览走同源路由 `/dsh-plugin-files/raw/<path>`:仅响应图片扩展名,
|
|
66
|
+
先经 `ctx.fs.resolve → stat`(沙箱一致的路径解析)再读取字节,20MB 上限
|
|
57
67
|
- DSH 升级会覆盖布局 bundle,需重新运行补丁脚本;锚点失效时更新 `scripts/patch-layout.mjs`
|
|
58
68
|
- 本仓库不包含 DSH 编译产物
|
|
59
69
|
|