dsh-plugin-workbench 0.0.6 → 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 +10 -0
- package/README.md +13 -3
- package/lib/client.js +1 -4
- package/lib/client.js.map +1 -1
- package/lib/index.js +6 -6
- package/package.json +3 -2
- package/src/client/FileExplorer.tsx +5 -4
- package/src/client/index.ts +1 -1
- package/src/index.ts +19 -6
package/CHANGELOG.md
CHANGED
|
@@ -4,6 +4,16 @@
|
|
|
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
|
+
## [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
|
+
|
|
7
17
|
## [0.0.6] - 2026-08-19
|
|
8
18
|
|
|
9
19
|
### Added
|
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
|
|
|
@@ -23,9 +24,18 @@
|
|
|
23
24
|
- **行号栏**:编辑器左侧逻辑行号,与文本滚动锁定对齐(纯文本/高亮模式均生效)
|
|
24
25
|
- **图片预览**:png/jpg/gif/webp/avif/svg 等直接内联渲染(同源字节路由,20MB 上限)
|
|
25
26
|
- **右键菜单**(VS Code 风格):文件/文件夹/空白区域均可右键——
|
|
26
|
-
|
|
27
|
+
新建文件、新建文件夹、重命名、删除(递归带确认)、复制路径、复制 / 剪切 / 粘贴、
|
|
28
|
+
刷新、在系统中打开、
|
|
27
29
|
在资源管理器打开(文件在所在文件夹中被选中,文件夹直接打开;
|
|
28
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`,不复制字节)
|
|
29
39
|
- **在资源管理器打开**:右键菜单项(同 VS Code 的 Reveal in File Explorer),
|
|
30
40
|
把文件/文件夹定位到系统文件管理器(Windows 资源管理器、macOS Finder 等),
|
|
31
41
|
经 loopback RPC 的 `reveal` 端点执行
|
package/lib/client.js
CHANGED
|
@@ -1280,10 +1280,7 @@ window.__ModuleLoader__.load({
|
|
|
1280
1280
|
if (sameDest) dest = joinPath(targetDir, copyName(item.name));
|
|
1281
1281
|
let overwritten = false;
|
|
1282
1282
|
try {
|
|
1283
|
-
|
|
1284
|
-
await copyPath(item.path, dest, false);
|
|
1285
|
-
} catch (error) {
|
|
1286
|
-
if (error.code !== "exists") throw error;
|
|
1283
|
+
if ((await copyPath(item.path, dest, false)).exists === true) {
|
|
1287
1284
|
if (!window.confirm(t("confirm.overwrite", { name: item.name }))) continue;
|
|
1288
1285
|
overwritten = true;
|
|
1289
1286
|
await copyPath(item.path, dest, true);
|