dsh-vscode-mode 0.1.59 → 0.1.61
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 +21 -11
- package/lib/client.js +800 -107
- package/lib/client.js.map +1 -1
- package/package.json +2 -2
- package/src/client/fileOpeners.ts +41 -1
- package/src/client/index.ts +109 -23
- package/src/client/navHistory.ts +28 -1
- package/src/client/officialSidebar.ts +352 -0
- package/src/client/paths.ts +3 -3
- package/src/client/sidebar/panels/FileExplorer.ts +14 -11
- package/src/client/sidebar/panels/SearchPanel.ts +10 -7
- package/src/client/sidebar/types.ts +2 -0
- package/src/client/state/explorerCache.ts +9 -9
- package/src/client/state/explorerEntriesCache.ts +31 -31
- package/src/client/state/modelCache.ts +77 -0
- package/src/client/state/scopeStore.ts +96 -0
- package/src/client/state/viewStateCache.ts +9 -9
- package/src/client/ui/EditorView.ts +58 -27
- package/src/client/ui/OfficialSideTab.ts +92 -0
package/README.md
CHANGED
|
@@ -4,11 +4,16 @@
|
|
|
4
4
|
|
|
5
5
|
仿 VSCode 的 **Agent 文件编辑器 + 差异审查** DSH 插件:
|
|
6
6
|
|
|
7
|
-
- **侧边栏「文件编辑」Tab**(v0.1.
|
|
8
|
-
|
|
9
|
-
类主流 Code Agent
|
|
10
|
-
|
|
11
|
-
|
|
7
|
+
- **侧边栏「文件编辑」Tab**(v0.1.60,推荐):检测到 **DSH 0.1.5+ 官方右侧 Sidebar**(`ctx.sidebarRightTabs` /
|
|
8
|
+
`ctx.sidebarRight` 服务)时,编辑器注册为官方侧边栏 Tab——**AI 对话(中央)与文件编辑(右侧栏)同屏**,
|
|
9
|
+
类主流 Code Agent 布局;支持官方多标签/分栏/浮出/全屏,打开路由即开即展开;官方 Sidebar 引导页提供入口。
|
|
10
|
+
**优先级**:官方侧边栏与 [dsh-better-sidebar](https://github.com/omdsh-dev/DSH-better-sidebar) 同时可用时**官方优先**
|
|
11
|
+
(better-sidebar 桥已归档,仅作旧版 DSH 回退,不再新增能力)。旧版 DSH(< 0.1.5)沿用 better-sidebar 侧栏形态,
|
|
12
|
+
两者皆缺时回退旧「中央文件编辑页签」形态(插件零新依赖仍完整可用),
|
|
13
|
+
编辑器顶部与设置页「兼容性」子 Tab 会给出对应引导。
|
|
14
|
+
**文件链接(DSH 0.1.5+)**:聊天/文件树的文件链接经官方 `ctx.sidebarRight.openResource` 直达右侧栏——
|
|
15
|
+
「文件链接使用工具」为 自动/VSCodeMode 时本插件以 extension 档认领 `dsh-resource://file/**`(链接在本插件
|
|
16
|
+
Monaco 编辑器打开,含行号定位);为「官方侧边栏」档时走官方文本查看器(不认领);畸形地址自动回落官方查看器。
|
|
12
17
|
文件页签(脏点/关闭/「+」打开)+ `Ctrl+P` 快速打开(QuickOpen)+ **Monaco Editor**
|
|
13
18
|
(语法高亮/行号/`Ctrl+F`/`Ctrl+G`/`Ctrl+S`/700ms 防抖自动保存)+ 顶部工具栏(路径/语言/Ln,Col/保存状态/差异/侧边栏/刷新)
|
|
14
19
|
+ **导航历史**(后退/前进:跨文件恢复焦点位置,工具栏 `←`/`→` 按钮、键盘 `Alt+←/→` 与 `Ctrl+Alt+-`/`Ctrl+Shift+-`、
|
|
@@ -65,7 +70,8 @@
|
|
|
65
70
|
|
|
66
71
|

|
|
67
72
|
|
|
68
|
-
> dsh-vscode-mode
|
|
73
|
+
> dsh-vscode-mode 侧边栏编辑形态:右侧栏(DSH 0.1.5+ 官方 Sidebar / 旧版 betterSidebar)内的
|
|
74
|
+
> Monaco 文件编辑器与中央 AI 对话同屏,
|
|
69
75
|
> 差异条统一挂在对话输入框上方的原生 dock(编辑器未打开=「差异 N 个文件 · 查看下一个」,
|
|
70
76
|
> 打开后=完整 Keep / Undo 操作条)。
|
|
71
77
|
|
|
@@ -148,9 +154,11 @@ src/
|
|
|
148
154
|
├── rpc.ts Host RPC 分发表(类型化 handler 表替代巨型 switch,含 compat)
|
|
149
155
|
├── routes.ts Host webServer 路由(/edrv/rpc、/edrv/assets/*、/edrv/vendor/*,带冲突护栏)
|
|
150
156
|
└── client/
|
|
151
|
-
├── index.ts Client 入口:slot 注册(inject=['slots','timer']
|
|
157
|
+
├── index.ts Client 入口:slot 注册(inject=['slots','timer']);官方/betterSidebar/中央页签三形态互斥分流(官方优先)
|
|
152
158
|
├── compat.ts ★ Client 兼容层:设置桥三级降级(webUiSettings→settingsScope)、slot 安全注册、openPath 链式补丁、外部插件常量
|
|
153
|
-
├── sidebarBridge.ts ★
|
|
159
|
+
├── sidebarBridge.ts ★ 侧边栏编辑区桥(归档):可选探测 ctx.betterSidebar、注册「文件编辑」Tab、打开路由/角标计数(纯函数可单测)
|
|
160
|
+
├── officialSidebar.ts ★ 官方右侧 Sidebar 桥(DSH 0.1.5+,唯一维护面):探测 sidebarRightTabs/sidebarRight、
|
|
161
|
+
│ 两段式注册(类型定义 + keyed slot 正文)、openTab 路由(纯函数可单测)
|
|
154
162
|
├── rpc.ts Client 类型化 fetch 包装 + 诊断日志
|
|
155
163
|
├── events.ts 窗口事件助手(edrv:refresh/open-editor/show-launcher;侧栏路由优先、旧页签回退)
|
|
156
164
|
├── state/ records.ts(摘要/计数/空差异)+ regions.ts(差异区域/行裁剪)纯函数
|
|
@@ -164,7 +172,8 @@ src/
|
|
|
164
172
|
│ + types.ts(SidebarPanelDef/SidebarCtx)+ panels/FileExplorer.ts(文件树面板 #1)
|
|
165
173
|
│ + panels/SearchPanel.ts(搜索面板)+ panels/RulesPanel.ts(规则面板:用户/项目规则 + 开关)
|
|
166
174
|
├── styles/editor.css 编辑区样式(tsdown CSS-inline 注入;含侧栏形态/引导条)
|
|
167
|
-
└── ui/ EditorView(编排,tab/side 双形态)/
|
|
175
|
+
└── ui/ EditorView(编排,tab/side 双形态)/ OfficialSideTab(官方 Sidebar Tab 包装)
|
|
176
|
+
/ SideEditorTab(betterSidebar Tab 包装,归档)/ QuickOpen
|
|
168
177
|
/ DiffBox(chat/editor 双模式)/ ConversationDiffDock / DiffBarEmpty / DiffLauncher
|
|
169
178
|
/ DiffBadge / McpSettings(含「兼容性」子 Tab)
|
|
170
179
|
```
|
|
@@ -203,8 +212,9 @@ curl -s -X POST http://127.0.0.1:3080/edrv/rpc -H 'content-type: application/jso
|
|
|
203
212
|
- **RPC**:静态包经 webServer 精确路由 `/edrv/rpc`,Client 同源 fetch;载荷形状由 `shared/rpc` 类型化。
|
|
204
213
|
- **批次/融合/归档**:每次新 edit/write 递增文件 batch,早于最新批次的未归档差异自动"融合"归档;
|
|
205
214
|
每条差异处理完成(采纳/拒绝/被覆盖)立即单条归档;DiffLauncher「归档」页按批次浏览 + 回滚。
|
|
206
|
-
- **Client
|
|
207
|
-
|
|
215
|
+
- **Client 挂点**:官方右侧 Sidebar Tab(DSH 0.1.5+:类型定义 id `dsh-vscode-mode`、kind `edrvEditor`,
|
|
216
|
+
正文挂 keyed slot `sidebar.right.pane.tab`;优先级最高)> betterSidebar Tab `edrv-editor`(归档,仅旧版回退)
|
|
217
|
+
> `conversation.view` 页签(id `edrv-editor`)+ `conversation.session.header.utilities`(id `edrv-diff-badge`)+ `conversation.input.dock`
|
|
208
218
|
(id `edrv-diff-dock`,唯一差异栏:编辑器未打开=紧凑按钮,打开后=完整操作条)。内部路由/slot/事件/CSS 前缀沿用 `edrv-*`(防回归),包身份为 `dsh-vscode-mode`。
|
|
209
219
|
- **⚠️ Host 改动需重启 DSH 应用**(Node ESM 模块缓存);Client 经 `dsh-client-hmr` 热重载。
|
|
210
220
|
|