dsh-vscode-mode 0.11.0 → 0.13.0
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/README.md +158 -111
- package/assets/shell/dsh-open.cs +65 -149
- package/assets/shell/dsh-open.mjs +241 -0
- package/assets/shell/dsh-open.ps1 +28 -47
- package/assets/shell/dsh-open.sh +25 -66
- package/lib/client.js +13362 -11806
- package/lib/client.js.map +1 -1
- package/lib/index.js +4110 -2507
- package/lib/index.js.map +1 -1
- package/package.json +9 -8
- package/skills/dsh-vscodemode-mcp/SKILL.md +94 -132
- package/src/childEnv.ts +19 -0
- package/src/client/activePathStore.ts +28 -0
- package/src/client/addToConversation.ts +4 -2
- package/src/client/ai/inlineProvider.ts +1 -8
- package/src/client/commandBridge.ts +14 -42
- package/src/client/externalOpen.ts +40 -19
- package/src/client/index.ts +101 -18
- package/src/client/keybindings.ts +36 -73
- package/src/client/monaco/loader.ts +3 -1
- package/src/client/openFlow.ts +36 -28
- package/src/client/openReceipt.ts +64 -0
- package/src/client/panelCommands.ts +101 -0
- package/src/client/pdf/pdfLoader.ts +4 -2
- package/src/client/receiptState.ts +120 -0
- package/src/client/rpc.ts +30 -4
- package/src/client/shortcutRecorder.ts +161 -0
- package/src/client/shortcutsOfficial.ts +460 -0
- package/src/client/sidebar/panels/RulesPanel.ts +15 -11
- package/src/client/sidebarBridge.ts +7 -0
- package/src/client/ui/DiffBadge.ts +2 -1
- package/src/client/ui/EditorView.ts +246 -137
- package/src/client/ui/McpSettings.ts +10 -8
- package/src/client/ui/OfficialSideTab.ts +5 -2
- package/src/client/ui/QuickOpen.ts +16 -16
- package/src/client/ui/ShortcutSettings.ts +274 -0
- package/src/client/ui/commandCatalog.ts +39 -43
- package/src/client/useOpenReceipt.ts +128 -0
- package/src/compat.ts +5 -3
- package/src/dap/manager.ts +46 -13
- package/src/devForm.ts +252 -92
- package/src/externalHandoff.ts +93 -52
- package/src/fileOpenSettings.ts +4 -24
- package/src/hostImport.ts +19 -0
- package/src/httpGuard.ts +101 -0
- package/src/index.ts +106 -97
- package/src/integrate.ts +56 -50
- package/src/lsp/transport.ts +84 -127
- package/src/mcp.ts +58 -9
- package/src/mcpIsolation.ts +211 -102
- package/src/mcpProject.ts +220 -133
- package/src/mcpRuntime.ts +343 -0
- package/src/openBridge.ts +69 -0
- package/src/openInbox.ts +207 -0
- package/src/paths.ts +8 -5
- package/src/processTree.ts +63 -0
- package/src/reveal.ts +5 -3
- package/src/routes.ts +156 -154
- package/src/rpc.ts +14 -13
- package/src/rules.ts +100 -44
- package/src/shared/appUrl.ts +19 -0
- package/src/shared/externalOpen.ts +71 -0
- package/src/shared/integration.ts +2 -0
- package/src/shared/keybindings.ts +256 -0
- package/src/shared/mcp.ts +4 -1
- package/src/shared/rpc.ts +7 -4
- package/src/shared/rules.ts +9 -1
- package/src/shared/svn.ts +6 -8
- package/src/svnPlanTool.ts +51 -0
- package/src/unityBridge.ts +26 -3
- package/unity/com.dsh.editor/Editor/DshCodeEditor.cs +99 -203
- package/unity/com.dsh.editor/Editor/DshOpenWorker.cs +166 -0
- package/unity/com.dsh.editor/Editor/DshOpenWorker.cs.meta +2 -0
- package/unity/com.dsh.editor/README.md +16 -25
- package/unity/com.dsh.editor/package.json +2 -2
- package/src/client/ui/KeybindingsPanel.ts +0 -190
package/README.md
CHANGED
|
@@ -44,8 +44,8 @@
|
|
|
44
44
|
保存·全部关闭(`Ctrl+F4` 关当前)/ 复制路径·复制相对路径 / 在文件资源管理器
|
|
45
45
|
(视图)中显示。关闭前未保存页签静默落盘;浏览器无法实现的条目(向右拆分 /
|
|
46
46
|
新窗口)不提供。
|
|
47
|
-
-
|
|
48
|
-
|
|
47
|
+
- **工作区搜索填充**:编辑器有选中时执行「工作区搜索」(当前键位见官方快捷键目录),
|
|
48
|
+
选中文本自动填入搜索框并立即搜索(多行选区取首行;填入后全选,便于直接改写)。
|
|
49
49
|
- **Markdown 预览**(v0.5.3):打开 `.md` / `.markdown` 后,工具栏「预览」按钮、
|
|
50
50
|
`Ctrl+Shift+V` 或命令栏「切换 Markdown 预览」切入 GFM 渲染(标题/列表/表格/代码块/
|
|
51
51
|
引用/KaTeX),「以源码打开」切回编辑。渲染走官方 `MarkdownText` 原语,零新增依赖、
|
|
@@ -64,10 +64,11 @@
|
|
|
64
64
|
命令 id 均可命中),`↑↓` 选择、`Enter` 执行、`Esc` 关闭,每行显示 命令名 /
|
|
65
65
|
分类 / 当前键位;需要打开文件的命令在空编辑器时自动隐藏。
|
|
66
66
|
|
|
67
|
-
- **单一数据源**:命令目录(`ui/commandCatalog
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
67
|
+
- **单一数据源**:命令目录(`ui/commandCatalog`)驱动命令栏和官方快捷键目录;
|
|
68
|
+
设置 →「快捷键」可查看官方目录与编辑插件命令,绑定经 DSH 官方服务保存。旧版 DSH
|
|
69
|
+
没有该服务时继续使用原有窗口按键派发,旧 `keybindings` 设置仍可生效。
|
|
70
|
+
- **开放注册表**:`window.__edrvCommands__` 暴露 `register()` 注册命令;插件
|
|
71
|
+
不再提供独立的运行时键位注册,改用 DSH 官方 shortcuts 配置。
|
|
71
72
|
- **开箱 20 条命令**:保存 / 快速打开 / 在文件浏览器中打开 / 显示所有命令 /
|
|
72
73
|
切换侧边栏 / 工作区搜索 / 切换 Markdown 预览 / 后退·前进 / 上下页签 / 关闭当前页签 /
|
|
73
74
|
上下编辑行 / 转到定义 / 查找引用 / 触发 AI 补全 / 配置代码片段 / 插入代码片段 /
|
|
@@ -165,8 +166,8 @@ cmaps 支持中文渲染);工具条进入注释编辑:✎ 文本框 / 🖌
|
|
|
165
166
|
### 9. 文件管理侧边栏(类 VSCode 活动栏 + 面板)
|
|
166
167
|
|
|
167
168
|
编辑器内嵌活动栏 + 可拖拽调宽面板区;首期「资源管理器」= 懒加载目录树
|
|
168
|
-
(展开实时读取、点文件打开、差异角标、活动文件高亮、`edrv:refresh` / 手动
|
|
169
|
-
|
|
169
|
+
(展开实时读取、点文件打开、差异角标、活动文件高亮、`edrv:refresh` / 手动 ⟳,
|
|
170
|
+
可通过命令栏切换显隐并持久化),侧栏形态默认收起以节省面板宽度。
|
|
170
171
|
|
|
171
172
|
- 拖拽调宽下限 = 最小宽度(默认 300,设置 → VSCodeMode → 通用「编辑器」
|
|
172
173
|
可调 180–560),拖拽低于最小宽度自动收起。
|
|
@@ -188,8 +189,12 @@ cmaps 支持中文渲染);工具条进入注释编辑:✎ 文本框 / 🖌
|
|
|
188
189
|
### 10. 规则管理(v0.1.49 / v0.1.50,参考 Codebuddy)
|
|
189
190
|
|
|
190
191
|
活动栏「规则」面板,管理 Cursor / Codebuddy 式 `.mdc` 规则文件:「用户规则」
|
|
191
|
-
|
|
192
|
-
|
|
192
|
+
(当前 `DSH_HOME/rules/`,兼容系统用户主目录下的 `~/.dsh/rules/`)与「项目规则」
|
|
193
|
+
(`<工作区>/.dsh/rules/`,随仓库共享)双 Tab。`DSH_HOME` 未设置时默认
|
|
194
|
+
`~/.dsh`,两个用户目录相同则只读取一次。两处同名规则以当前 `DSH_HOME/rules/`
|
|
195
|
+
为准(即使已停用也遮蔽旧规则);删除当前版本后旧目录版本会重新生效。
|
|
196
|
+
新建写当前目录,编辑 / 启停 / 删除旧规则在旧目录原地进行,不自动搬迁;
|
|
197
|
+
操作旧规则可能影响其他仍使用该目录的 DSH 安装。
|
|
193
198
|
|
|
194
199
|
- 每条规则显示 文件名 / 相对路径 / 类型徽标(总是 = `alwaysApply`、自动 =
|
|
195
200
|
`globs`、手动 = 仅索引)/ 描述;右侧常驻 编辑 / 删除 与滑动启用开关
|
|
@@ -204,8 +209,19 @@ cmaps 支持中文渲染);工具条进入注释编辑:✎ 文本框 / 🖌
|
|
|
204
209
|
### 11. MCP 可视化管理(设置 → VSCodeMode)
|
|
205
210
|
|
|
206
211
|
子 Tab「我的 MCP」(profile 全局)+「项目 MCP」(各项目根 `.mcp.json`,
|
|
207
|
-
对齐 Claude Code / Cursor
|
|
208
|
-
|
|
212
|
+
对齐 Claude Code / Cursor,随仓库共享):支持 stdio / streamable-http 的新增、
|
|
213
|
+
刷新、启停、删除和运行状态查看。
|
|
214
|
+
|
|
215
|
+
- **项目作用域**(v0.13.0):工具、资源与服务器指令均按 agent 所属工作区隔离;
|
|
216
|
+
跨工作区子会话不会因继承父 scope 而获得外项目 MCP。全局 MCP 保持全局可用。
|
|
217
|
+
- **实例与状态**:每个活动 agent、每个启用项目服务各有一个插件实例;没有活动
|
|
218
|
+
agent 时只保存配置(`configured`、实例数 0)。`instanceCount` 是挂载实例数,
|
|
219
|
+
`unverified` 表示没有公开连接状态证据,不能把 fiber ACTIVE 当成已连接。
|
|
220
|
+
零工具可能是合法的纯资源服务器。
|
|
221
|
+
- **配置保护**:reconcile 尊重 `disabled`;读取/解析错误保留最后有效连接,
|
|
222
|
+
不把不可读文件当成空配置。保存保留未知字段和未改动的脱敏凭据。
|
|
223
|
+
|
|
224
|
+
完整配置、迁移与排错见随包 [MCP 技能](skills/dsh-vscodemode-mcp/SKILL.md)。
|
|
209
225
|
|
|
210
226
|
### 12. 插件自带技能组(v0.3.3)
|
|
211
227
|
|
|
@@ -269,85 +285,67 @@ DSH 启动回放 `~/.dsh/sessions` 全部会话(V8 展开约 10×,可能 OOM
|
|
|
269
285
|
选择重新加载或用编辑器内容覆盖;冲突未处理期间自动保存被抑制。
|
|
270
286
|
- 老 host(无该 RPC)自动降级为无同步、无护栏,不报错。
|
|
271
287
|
|
|
272
|
-
### 15. 系统集成(v0.1.53
|
|
273
|
-
|
|
274
|
-
设置 → VSCodeMode → 通用 →「系统集成」卡片,两项能力:
|
|
275
|
-
|
|
276
|
-
**① 文件管理器右键菜单**——一键把「在 DSH 文件编辑中打开」注册进系统:
|
|
277
|
-
Windows 资源管理器三类入口 / Linux Nautilus + Dolphin / macOS Automator 配方;
|
|
278
|
-
插件卸载自动清理、更新自动恢复;点击经 launcher 打开默认浏览器深链,编辑器
|
|
279
|
-
直接打开所选文件;DSH 未运行时弹提示。
|
|
288
|
+
### 15. 系统集成(v0.1.53;v0.13.0 更新打开链路)
|
|
280
289
|
|
|
281
|
-
|
|
282
|
-
|
|
283
|
-
|
|
284
|
-
自动发现、不改 manifest.json);Unity Preferences → External Tools 选
|
|
285
|
-
「DSH 文件编辑」后,双击脚本 / Console 报错跳转即在浏览器打开对应文件与行列。
|
|
290
|
+
设置 → VSCodeMode → 通用 →「系统集成」卡片提供文件管理器右键菜单与 Unity
|
|
291
|
+
外部脚本编辑器。两者现在共用按 profile 隔离的本机私有 OPEN 请求/ACK 通道,
|
|
292
|
+
无需向 launcher 或 Unity 提供 Host Cookie,也不依赖固定 HTTP 端口。
|
|
286
293
|
|
|
287
|
-
|
|
288
|
-
|
|
289
|
-
```
|
|
290
|
-
http://127.0.0.1:3080/?edrvOpen=1&edrvPaths=<enc1>[,<enc2>…][&edrvLine=N][&edrvColumn=M]
|
|
291
|
-
```
|
|
294
|
+
**① 文件管理器右键菜单**
|
|
292
295
|
|
|
293
|
-
|
|
294
|
-
|
|
296
|
+
- Windows 提供文件、目录、目录空白处三类入口;Linux 提供 Nautilus 脚本与
|
|
297
|
+
Dolphin 服务菜单;macOS 提供 Finder Automator 快速操作配方。
|
|
298
|
+
- **注册和移除必须由用户在设置页显式操作**。插件 reload/更新只升级已注册的
|
|
299
|
+
launcher 文件及配置,保留所选 profile;不会自动重注册或撤销系统菜单。
|
|
300
|
+
卸载插件前如需清理菜单,请先点「移除注册」。
|
|
301
|
+
- Windows 优先使用编译后的 C# launcher,缺少编译器时回退 PowerShell;
|
|
302
|
+
POSIX 使用 Bash launcher。三个入口统一调用随包 `dsh-open.mjs` producer,
|
|
303
|
+
从配置读取所选 profile、私有收件箱和运行程序。
|
|
304
|
+
- 已打开的客户端可以领取请求并就地打开。需要唤起时,Desktop 使用官方
|
|
305
|
+
`dsh://open` 入口,Web 使用用户选定的完整应用地址(含实际端口和部署子路径)。
|
|
306
|
+
**唤起窗口或领取请求本身不代表打开成功**。
|
|
295
307
|
|
|
296
|
-
|
|
297
|
-
文件夹补引用):
|
|
308
|
+
**打开与回执规则**
|
|
298
309
|
|
|
299
|
-
|
|
|
310
|
+
| 阶段 | 行为 |
|
|
300
311
|
|---|---|
|
|
301
|
-
|
|
|
302
|
-
|
|
|
303
|
-
|
|
|
304
|
-
|
|
|
305
|
-
|
|
306
|
-
|
|
307
|
-
|
|
308
|
-
|
|
309
|
-
|
|
310
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
314
|
-
|
|
315
|
-
|
|
316
|
-
|
|
317
|
-
|
|
318
|
-
|
|
319
|
-
|
|
320
|
-
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
**Unity 包细节**:包源随插件分发于 `unity/com.dsh.editor/`(`package.json` +
|
|
339
|
-
`Editor/DshCodeEditor.cs` + asmdef,`"unity": "2019.4"` 基线;虚拟安装
|
|
340
|
-
`dsh-editor://vscode-mode`,`OpenProject` → `Application.OpenURL(深链)`,不生成
|
|
341
|
-
csproj);**打开过滤**:仅文本 / 代码类扩展名(白名单 + `EditorSettings.projectGenerationUserExtensions`
|
|
342
|
-
用户自定义扩展)交 DSH 打开,其余返回 `false` 交还 Unity 原生(双击预制体进
|
|
343
|
-
预制体模式、双击场景开场景),对齐官方 `DefaultExternalCodeEditor` 行为;
|
|
344
|
-
安装 / 更新 = 整目录复制 / 替换为 `<项目>/Packages/com.dsh.editor`(目标已存在
|
|
345
|
-
且 name 不是 `com.dsh.editor` 时拒绝覆盖),Unity 已打开时切回窗口自动刷新;
|
|
346
|
-
卸载 = 删除该目录;手动兜底:Package Manager → Add package from disk 选
|
|
347
|
-
`unity/com.dsh.editor`;登记清单存 `~/.dsh/dsh-vscode-mode/unity-projects.json`;
|
|
348
|
-
RPC:`edrv.unity.list / add / remove / install`。
|
|
349
|
-
安全说明:深链可在编辑器中查看任意绝对路径文件(与用户手动打开等价);保存仍
|
|
350
|
-
受会话沙箱 `policyOf` 约束,工作区外保存被拒是预期行为。
|
|
312
|
+
| 投递 | producer 将带请求 id、目标 profile、路径和可选行列的 OPEN 请求写入当前用户私有队列 |
|
|
313
|
+
| 领取 | 客户端领取带 lease 的请求,按工作区/会话路由到文件编辑器 |
|
|
314
|
+
| 确认 | 只有目标路径对应的实际 Monaco model 或预览内容成功就绪,才提交匹配请求与 lease 的成功 ACK |
|
|
315
|
+
| 失败/超时 | 返回失败或未确认;不会把一个已展开的空页签视为成功 |
|
|
316
|
+
|
|
317
|
+
请求按 profile 与请求身份匹配,队列内容受类型、大小、时效和本机权限检查约束;
|
|
318
|
+
producer 只承担「打开」请求,不是通用 RPC 代理。旧 `edrvOpen/edrvPaths` URL
|
|
319
|
+
参数仍作为兼容入口保留,已不是 launcher 和 Unity 的当前主链。
|
|
320
|
+
|
|
321
|
+
文件与目录仍按现有工作区路由:工作区内文件进入相应会话;无会话时可创建会话;
|
|
322
|
+
目录根据是否位于已注册工作区内选择复用或新建。选择取消会结束该请求。行列定位
|
|
323
|
+
与真正加载的目标文件绑定,避免切换文件时把其他 model 的内容当成完成证据。
|
|
324
|
+
|
|
325
|
+
**② Unity 外部脚本编辑器(内嵌包 `com.dsh.editor` 0.3.0)**
|
|
326
|
+
|
|
327
|
+
1. 在设置卡片中选择 Unity 项目,执行安装/更新,将随包 UPM 目录复制到
|
|
328
|
+
`<项目>/Packages/com.dsh.editor`;无需修改项目 manifest。
|
|
329
|
+
2. 首次安装会自动准备当前 profile 的独立 bridge,并写入本机项目提示
|
|
330
|
+
`<项目>/UserSettings/dsh-editor.ini`;**无需先注册系统右键菜单**。
|
|
331
|
+
3. 在 Unity Preferences → External Tools 选择「DSH 文件编辑」。双击文本脚本、
|
|
332
|
+
Console 报错行列或使用打开项目入口,会通过统一 producer 等待 ACK。
|
|
333
|
+
4. Unity 的「DSH 桥接配置」可填写绝对路径覆盖自动选择。优先级为:UI 显式覆盖 →
|
|
334
|
+
项目 UserSettings 提示 → 提示缺失时的旧 shell 配置回退;损坏提示会报错,
|
|
335
|
+
不会静默切换到另一个 profile。
|
|
336
|
+
|
|
337
|
+
UserSettings 提示包含本机 profile 路径,不适合作为团队共享配置。换机器或切换
|
|
338
|
+
profile 后应重新安装/更新桥接,或在 Unity UI 中显式指定对应 bridge 配置。
|
|
339
|
+
|
|
340
|
+
Unity 包保留文本/代码扩展名白名单与用户自定义扩展;Prefab、场景等资产仍交还
|
|
341
|
+
Unity 原生处理,不生成 csproj。Unity API 与 EditorPrefs 在主线程使用;后台任务
|
|
342
|
+
负责 producer 与 IO。安装目标已有同名目录但不是本包时拒绝覆盖,卸载仅删除该包目录。
|
|
343
|
+
|
|
344
|
+
- 管理 RPC:`edrv.integration.status/register/unregister`、`edrv.unity.list/add/remove/install`。
|
|
345
|
+
- 保存文件仍遵循当前会话沙箱策略;外部打开成功不扩大文件写入权限。
|
|
346
|
+
- 当前验证边界:Windows 官方 Desktop 已完成隔离启动与侧栏挂载等检查;Unity
|
|
347
|
+
仅有 C# 编译桩与 9 项 hint 探针,尚未执行真实 Unity EditMode。Linux/macOS
|
|
348
|
+
尚无本轮现场验证。具体完成项与待验收项见 [0.13 发布说明](docs/release-0.13.0.md)。
|
|
351
349
|
|
|
352
350
|
### 16. SVN 集成(v0.5.0)
|
|
353
351
|
|
|
@@ -427,17 +425,19 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
427
425
|
|
|
428
426
|
## 安装
|
|
429
427
|
|
|
430
|
-
官方 `dsh plugin`
|
|
428
|
+
官方 `dsh plugin` 方式,三选一。下面以 `web` profile 为例;Desktop 或其他命名
|
|
429
|
+
profile 请替换为实际目标,不要把示例目录当成当前运行 profile。升级前可阅读
|
|
430
|
+
[0.13.0 发布与迁移说明](docs/release-0.13.0.md)。
|
|
431
431
|
|
|
432
432
|
```bash
|
|
433
433
|
# ① Git 安装(clone + prepare 构建;推荐打固定 tag)
|
|
434
|
-
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.
|
|
434
|
+
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.13.0
|
|
435
435
|
|
|
436
436
|
# ② npm 注册表(发布到 npm 后)
|
|
437
437
|
dsh plugin --profile web add dsh-vscode-mode
|
|
438
438
|
|
|
439
439
|
# ③ GitHub Release tgz 直装
|
|
440
|
-
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.
|
|
440
|
+
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.13.0/dsh-vscode-mode-0.13.0.tgz
|
|
441
441
|
```
|
|
442
442
|
|
|
443
443
|
> `dsh plugin ...` 是 pnpm 转发器:git 安装会克隆仓库、执行该包 `prepare` 脚本
|
|
@@ -474,23 +474,26 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
474
474
|
|
|
475
475
|
- **文件树**:资源管理器面板点击打开;**文件链接**(DSH 0.1.5+):聊天 / 文件树
|
|
476
476
|
里的文件链接直达右侧栏编辑器(含行号定位)。
|
|
477
|
-
-
|
|
478
|
-
`Esc`
|
|
477
|
+
- **快速打开**:执行插件 QuickOpen 命令(键位见「设置 → 快捷键」)——`↑↓` 选择、
|
|
478
|
+
`Enter` 打开高亮项、`Esc` 关闭,鼠标悬停与高亮同步;`Ctrl+P` 由官方文件切换使用。
|
|
479
479
|
- **差异入口**:对话输入框上方 dock 的「差异 N 个文件 · 查看下一个」按钮。
|
|
480
480
|
|
|
481
481
|
### 快捷键速查
|
|
482
482
|
|
|
483
|
+
以下是桌面端常见默认键位;Web / Linux 的浏览器或系统保留键可能不绑定。
|
|
484
|
+
实际生效键位以「设置 → 快捷键」为准;旧版 DSH 无官方 shortcuts 时沿用原有键位。
|
|
485
|
+
|
|
483
486
|
| 快捷键 | 功能 |
|
|
484
487
|
|---|---|
|
|
485
|
-
| `Ctrl+P` |
|
|
488
|
+
| `Ctrl+Alt+P`(桌面)/ `Ctrl+Alt+Shift+P`(Web Windows/macOS) | 插件快速打开文件(QuickOpen);`Ctrl+P` 由 DSH 官方文件切换使用 |
|
|
486
489
|
| `Ctrl+Shift+P` / `F1` | 命令面板 |
|
|
487
490
|
| `Ctrl+U` | 选中内容加为引用(Add Selection to Chat) |
|
|
488
491
|
| `Ctrl+S` | 保存(另有 700ms 防抖自动保存) |
|
|
489
492
|
| `Ctrl+F` / `Ctrl+G` | 查找 / 跳转行 |
|
|
490
493
|
| `F12` / `Shift+F12` | 转到定义 / 查找所有引用 |
|
|
491
494
|
| `Ctrl+点击` / `Ctrl+hover` | 引用导航 / 可导航标识符提示 |
|
|
492
|
-
|
|
|
493
|
-
| `Ctrl+Shift+F` |
|
|
495
|
+
| 自定义键位 | 切换文件管理侧边栏(`Ctrl+B` 与 DSH 自身侧栏命令冲突,插件默认不绑定) |
|
|
496
|
+
| 以当前官方目录为准(Web 采用平台允许的组合) | 工作区搜索(有选中则填入搜索框);不保证所有平台都使用 `Ctrl+Shift+F` |
|
|
494
497
|
| `Ctrl+Shift+V` | 切换 Markdown 预览(仅活动文件为 .md 时生效) |
|
|
495
498
|
| `Ctrl+F4` | 关闭当前页签 |
|
|
496
499
|
| `Alt+←` / `Alt+→` | 后退 / 前进(跨文件恢复焦点位置) |
|
|
@@ -523,6 +526,18 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
523
526
|
|
|
524
527
|
## 配置
|
|
525
528
|
|
|
529
|
+
设置 →「快捷键」页:官方目录总览和插件快捷键录制、逐项恢复;编辑通过官方
|
|
530
|
+
shortcuts 服务持久化(Desktop:`userData/keybindings.json`;Web:
|
|
531
|
+
`localStorage` 的 `dsh.keybindings.v1`)。旧版插件 `keybindings` 配置的单候选自定义值
|
|
532
|
+
按当前平台一次性尝试迁入官方存储;旧配置始终保留供其他平台及人工恢复,
|
|
533
|
+
多候选、冲突、不支持或未绑定的旧值不会被部分迁入或删除。
|
|
534
|
+
|
|
535
|
+
v0.13.0 在 0.12 官方接管的基础上修正真实 `normalized` 绑定与物理 Control/Meta
|
|
536
|
+
的转换;录制先进入官方 recording 状态,并在确认、取消、失败、失焦及卸载等退出
|
|
537
|
+
路径收尾,避免原生快捷键拦截长期停用。首次打开命令面板/QuickOpen 等入口按当前
|
|
538
|
+
会话 scope 路由,不要求编辑器先挂载。Web 工作区搜索使用官方当前平台允许的
|
|
539
|
+
三修饰符组合,最终显示与冲突判断以官方目录为准。
|
|
540
|
+
|
|
526
541
|
设置 →「VSCodeMode」页:
|
|
527
542
|
|
|
528
543
|
| 分区 | 说明 |
|
|
@@ -561,21 +576,27 @@ npm pack # 产物 tgz(含 lib/assets/src/cordis.patch.yml)
|
|
|
561
576
|
|
|
562
577
|
### 开发形态(devForm)
|
|
563
578
|
|
|
564
|
-
|
|
565
|
-
|
|
566
|
-
可经 RPC 自动开启 / 关闭:
|
|
579
|
+
开发形态 = 当前运行 profile 以 `link:` 依赖和链接入口指向源码目录。设置 → 通用
|
|
580
|
+
可查看和切换形态;切换成功后需要重启 DSH 才能加载新的 Host 代码。
|
|
567
581
|
|
|
568
|
-
|
|
569
|
-
|
|
570
|
-
|
|
571
|
-
|
|
572
|
-
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
576
|
-
|
|
577
|
-
|
|
578
|
-
|
|
582
|
+
- **定位当前 profile**:优先使用官方 `profileContext.dir`;旧宿主仅在依赖本插件的
|
|
583
|
+
profile 候选唯一时回退。服务信息无效或候选有歧义时拒绝切换,不猜测 `web` 目录。
|
|
584
|
+
- **失败恢复**:写入前备份 manifest、lockfile 和原安装入口;安装失败时恢复原内容
|
|
585
|
+
与链接身份。若恢复本身失败,会保留备份位置供处理,不能宣称已经恢复成功。
|
|
586
|
+
- **开发目录校验**:要求绝对路径、正确包身份,且不位于被替换的 profile
|
|
587
|
+
`node_modules` 内;移除链接只处理链接本身,不递归删除源码。
|
|
588
|
+
- **运行程序**:有官方 `profileContext.packageManager` 时使用它提供的程序、参数和
|
|
589
|
+
显式环境(含 Desktop 自带运行方式);旧宿主再回退 PATH。
|
|
590
|
+
|
|
591
|
+
程序化调用继续使用插件已有 RPC,但须经当前已鉴权应用的同源通道;未携带有效
|
|
592
|
+
Host 身份的裸 HTTP/curl 请求不再是支持的接入方式。请求地址应保留应用子路径,
|
|
593
|
+
Desktop 应沿用当前 `dsh-app:` 应用上下文,不拼接固定 `localhost` 端口。
|
|
594
|
+
|
|
595
|
+
| 方法 | `args` | 行为 |
|
|
596
|
+
|---|---|---|
|
|
597
|
+
| `vscode.devFormGet` | `{}` | 读取当前形态,兼容性报告也包含 `devForm` |
|
|
598
|
+
| `vscode.devFormSet` | `{ "enabled": true, "path": "<源码绝对路径>" }` | 开启开发形态;按返回的 `restart` 重启 |
|
|
599
|
+
| `vscode.devFormSet` | `{ "enabled": false }` | 切回当前插件版本的正式依赖;按返回的 `restart` 重启 |
|
|
579
600
|
|
|
580
601
|
### 源码结构
|
|
581
602
|
|
|
@@ -623,8 +644,11 @@ pdf.js vendor + 图标 + launcher)、`skills/`(插件技能组)、`src/`
|
|
|
623
644
|
- **持久化**:工作区旁车 `.dsh-edit-review.json`(version 2,按 cwd 分桶,写前
|
|
624
645
|
合并,v1 自动迁移);归档 `.dsh-edit-review-archive.json`(按 path+batch
|
|
625
646
|
合并批次,含每 hunk 决策与 before)。
|
|
626
|
-
- **RPC
|
|
627
|
-
|
|
647
|
+
- **RPC 与资源路由**:`/edrv` 接口先经官方 `connection.requestRejection(req)`
|
|
648
|
+
校验 Host 身份,认证能力缺失时拒绝请求。RPC 校验方法、JSON content-type、
|
|
649
|
+
envelope 和对象参数,同时检查 Content-Length 与实际读取字节上限;响应不缓存。
|
|
650
|
+
Client 按应用 document base 解析 RPC、资源与 vendor URL,保留反向代理子路径,
|
|
651
|
+
支持 HTTP(S) 和 Desktop 的 `dsh-app:` 来源。
|
|
628
652
|
- **批次 / 融合 / 归档**:每次新 edit/write 递增文件 batch,早于最新批次的未归档
|
|
629
653
|
差异自动"融合"归档;每条差异处理完成立即单条归档;DiffLauncher「归档」页按
|
|
630
654
|
批次浏览 + 回滚。
|
|
@@ -645,8 +669,15 @@ pdf.js vendor + 图标 + launcher)、`skills/`(插件技能组)、`src/`
|
|
|
645
669
|
`client/` 加组件,其余模块零改动;`monaco/*` 是可复用的编辑器服务(资源树 /
|
|
646
670
|
对比 / 诊断面板共用);`edrvSidebarPanels` 注册表承载后续面板(搜索 / 差异 /
|
|
647
671
|
时间线),`edrv.listDir` 为通用目录树 API。
|
|
648
|
-
-
|
|
649
|
-
`
|
|
672
|
+
- **Host 模块来源**:动态加载优先锚定运行中 DSH 的入口安装树;已解析模块的执行
|
|
673
|
+
错误不会被旧开发依赖副本掩盖。本轮官方 Host 审计与现场基线是 `0.1.7-rc.2`,
|
|
674
|
+
依赖声明、源码能力探测和现场验证是不同层次,详见 [版本适配矩阵](docs/version-adaptation.md)。
|
|
675
|
+
- **子进程环境与回收**:LSP/DAP 等共用环境清理,按变量名排除父环境中的
|
|
676
|
+
KEY/PASSWORD/SECRET/TOKEN 与 `DSH_*` 隐式信息;用户显式配置的环境仍会传递。
|
|
677
|
+
Windows 使用进程树终止,POSIX 使用独立进程组;回收是 best effort,不能保证
|
|
678
|
+
清除主动脱离进程组或受系统权限限制的后代进程。
|
|
679
|
+
- **代码更新生效**:Host 改动需要重启 DSH;Client 需要重建产物并刷新原应用页面。
|
|
680
|
+
只有对应开发构建 watcher 和 HMR 接收端同时工作时,才可依赖自动更新。
|
|
650
681
|
|
|
651
682
|
### CI(GitHub Actions)
|
|
652
683
|
|
|
@@ -732,6 +763,22 @@ Keep All / Undo All 却是亮的。修复:单文件 Keep / Undo 覆盖冲突
|
|
|
732
763
|
完整变更见 [GitHub Releases](https://github.com/Lenonss/DSH_VsCodeMode/releases)。
|
|
733
764
|
近期关键版本:
|
|
734
765
|
|
|
766
|
+
- **v0.13.0**:**Host 鉴权与 Desktop 适配、项目 MCP 三面隔离、外部打开回执**——
|
|
767
|
+
`/edrv` 路由接入官方认证与有界请求体读取,URL 保留应用子路径并支持 `dsh-app:`;
|
|
768
|
+
项目 MCP 改为每 agent 挂载,隔离工具/资源/指令,新增配置态、未验证状态与实例数;
|
|
769
|
+
开发形态切换使用实际 `profileContext` 并支持失败恢复;子进程环境清理与进程树
|
|
770
|
+
回收收敛;在 **0.12 已有官方快捷键接管**上修复 normalized 绑定、录制收尾及
|
|
771
|
+
按会话 scope 首开。C#/PowerShell/Bash launcher 与 Unity 0.3.0 共用私有
|
|
772
|
+
OPEN/lease ACK 链路,真正加载目标 model/预览后才确认;Unity 首装自动配置
|
|
773
|
+
profile bridge,无需注册 OS 菜单。迁移、部署、回滚和验证边界见
|
|
774
|
+
[0.13.0 发布说明](docs/release-0.13.0.md)。
|
|
775
|
+
- **v0.12.0**:**用户规则双目录兼容 + 官方快捷键接管**——用户规则同时读取
|
|
776
|
+
`DSH_HOME/rules/` 和 `~/.dsh/rules/`,同名以当前目录为准,旧规则原地管理,
|
|
777
|
+
列表与提示词注入采用同一优先级;快捷键迁移到 DSH 官方 shortcuts 目录及独立设置页,
|
|
778
|
+
支持跨平台默认键位、录制、冲突校验和旧配置迁移;插件 QuickOpen 改用
|
|
779
|
+
桌面 `Ctrl+Alt+P` / Web Windows/macOS `Ctrl+Alt+Shift+P`(官方占用 `Ctrl+P`)。恢复插件键位只处理插件命令,
|
|
780
|
+
旧键位配置为跨平台回退始终保留,多候选不做部分导入;没有官方服务的旧版 DSH
|
|
781
|
+
仍使用原有键位派发。
|
|
735
782
|
- **v0.11.0**:**原生 SVN 更新窗口(逐文件实时反馈)+ LSP 补全增强 + 设置文件就地打开**——① 「SVN 更新」
|
|
736
783
|
从窄结果条升级为**插件内更新窗口**(`SvnUpdateDialog` + `svnUpdateJob`):任务启动窗口即出现,实时
|
|
737
784
|
逐文件列表(虚拟化 + 仅贴近底部时自动跟随)、动作着色(A/U/D/G/C/E/R)、完成后汇总版本号 / 计数 /
|