dsh-vscode-mode 0.10.0 → 0.12.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 +62 -11
- package/lib/client.js +2879 -1030
- package/lib/client.js.map +1 -1
- package/lib/index.js +2227 -1056
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/activePathStore.ts +28 -0
- package/src/client/commandBridge.ts +9 -41
- package/src/client/dap/hover.ts +2 -7
- package/src/client/index.ts +116 -14
- package/src/client/keybindings.ts +19 -73
- package/src/client/luaReservedWords.ts +10 -0
- package/src/client/monaco/lsp/keywords.ts +121 -0
- package/src/client/monaco/lsp/lspClient.ts +68 -6
- package/src/client/monaco/lsp/memberScope.ts +90 -0
- package/src/client/monaco/lsp/providers.ts +14 -4
- package/src/client/settingsDocRouter.ts +52 -0
- package/src/client/shortcutsOfficial.ts +451 -0
- package/src/client/sidebar/menuItems.ts +1 -0
- package/src/client/sidebar/panels/RulesPanel.ts +15 -11
- package/src/client/sidebar/types.ts +2 -0
- package/src/client/styles/editor.css +143 -37
- package/src/client/svnActions.ts +4 -4
- package/src/client/ui/ContextMenu.ts +4 -2
- package/src/client/ui/EditorView.ts +142 -135
- package/src/client/ui/McpSettings.ts +4 -5
- package/src/client/ui/QuickOpen.ts +10 -11
- package/src/client/ui/ShortcutSettings.ts +294 -0
- package/src/client/ui/SvnLogDialog.ts +200 -69
- package/src/client/ui/SvnUpdateDialog.ts +472 -0
- package/src/client/ui/commandCatalog.ts +36 -41
- package/src/client/ui/svnUpdateModel.ts +135 -0
- package/src/fileOpenSettings.ts +3 -0
- package/src/index.ts +2 -0
- package/src/lsp/completionCap.ts +80 -0
- package/src/lsp/manager.ts +42 -10
- package/src/lsp/rpc.ts +8 -5
- package/src/lsp/server.ts +18 -4
- package/src/rpc.ts +74 -2
- package/src/rules.ts +100 -44
- package/src/settingsDocPath.ts +30 -0
- package/src/shared/keybindings.ts +253 -0
- package/src/shared/rpc.ts +12 -2
- package/src/shared/rules.ts +9 -1
- package/src/shared/svn.ts +38 -0
- package/src/svn.ts +102 -7
- package/src/svnText.ts +22 -13
- package/src/svnUpdateJob.ts +588 -0
- package/src/client/ui/KeybindingsPanel.ts +0 -190
package/README.md
CHANGED
|
@@ -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 补全 / 配置代码片段 / 插入代码片段 /
|
|
@@ -110,6 +111,12 @@
|
|
|
110
111
|
EmmyLua 的注释索引(`---@class` / `---@field` / `---@type`)会被解析为真实的成员列表,
|
|
111
112
|
即对 `---@class` 标注的实例打 `p.` 能列出注解声明的字段/方法;候选项带类型图标、
|
|
112
113
|
弃用标记与片段展开(`${1:占位}`)。文档走 `completionItem/resolve` 惰性拉取,列表响应保持轻量。
|
|
114
|
+
- **关键字与注解类型补全**(v0.11.0):LSP 服务器没有返回候选时补齐 Lua 保留字
|
|
115
|
+
(`local` / `function` …,`luaReservedWords`);`---@type` / `---@param` 等注释内的基础类型
|
|
116
|
+
(`number` / `string` …)即使在运行中 `quickSuggestions.comments='off'` 也会自动弹出;
|
|
117
|
+
是否请求补全候选按适配器能力位裁决(`completionCap`)。
|
|
118
|
+
- **成员回退补全**(v0.11.0):EmmyLua 没给出成员列表时按当前作用域推导可用成员
|
|
119
|
+
(`memberScope`),补全不再空白。
|
|
113
120
|
- **签名帮助**:函数实参处(输入 `(` / `,`)显示参数签名并按当前实参高亮;
|
|
114
121
|
多签名可切换。
|
|
115
122
|
- 定义查找带降级链(definition → declaration → 引用推导);参数 / 局部变量
|
|
@@ -182,8 +189,12 @@ cmaps 支持中文渲染);工具条进入注释编辑:✎ 文本框 / 🖌
|
|
|
182
189
|
### 10. 规则管理(v0.1.49 / v0.1.50,参考 Codebuddy)
|
|
183
190
|
|
|
184
191
|
活动栏「规则」面板,管理 Cursor / Codebuddy 式 `.mdc` 规则文件:「用户规则」
|
|
185
|
-
|
|
186
|
-
|
|
192
|
+
(当前 `DSH_HOME/rules/`,兼容系统用户主目录下的 `~/.dsh/rules/`)与「项目规则」
|
|
193
|
+
(`<工作区>/.dsh/rules/`,随仓库共享)双 Tab。`DSH_HOME` 未设置时默认
|
|
194
|
+
`~/.dsh`,两个用户目录相同则只读取一次。两处同名规则以当前 `DSH_HOME/rules/`
|
|
195
|
+
为准(即使已停用也遮蔽旧规则);删除当前版本后旧目录版本会重新生效。
|
|
196
|
+
新建写当前目录,编辑 / 启停 / 删除旧规则在旧目录原地进行,不自动搬迁;
|
|
197
|
+
操作旧规则可能影响其他仍使用该目录的 DSH 安装。
|
|
187
198
|
|
|
188
199
|
- 每条规则显示 文件名 / 相对路径 / 类型徽标(总是 = `alwaysApply`、自动 =
|
|
189
200
|
`globs`、手动 = 仅索引)/ 描述;右侧常驻 编辑 / 删除 与滑动启用开关
|
|
@@ -353,6 +364,13 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
353
364
|
文件树行尾同步显示状态徽标。
|
|
354
365
|
- **动作**:更新、刷新变更、与基线比较、加入版本控制、还原(**破坏性动作均带确认**)、
|
|
355
366
|
清理工作副本(默认只清锁);未覆盖的项回落 TortoiseSVN。
|
|
367
|
+
- **更新窗口**(v0.11.0):`SVN 更新` 打开插件内窗口——实时逐文件列表与动作着色(A/U/D/G/C/E/R)、
|
|
368
|
+
完成汇总(版本号 / 计数 / 耗时 / 截断告警)、按右键目标限定**路径作用域**(只更新该子目录)、
|
|
369
|
+
命令栏 / 文件树 / 页签 / 编辑区右键四入口一致、可取消;运行中任务按工作副本根**去重**且刷新或
|
|
370
|
+
重开弹窗时**重挂附着**同一任务(不重复启动);被中断的 svn 操作锁住工作副本时识别
|
|
371
|
+
`E155037` 并给出「执行清理」引导(调 `svn.cleanup`,**不自动重跑更新**)。
|
|
372
|
+
- **日志弹窗视觉**(v0.11.0):信息层级、修订序列签名元素、动作语义色归位重做,
|
|
373
|
+
过滤 / 排序 / 多选 / 键盘 / 右键 / 拖拽行为不变。
|
|
356
374
|
- **日志弹窗**(对标 TortoiseSVN Revision Log Dialog):过滤语法(空格=AND / `-` 排除 /
|
|
357
375
|
`+` 纳入 / `!` 取反 / `"短语"` / 正则)、From-To 日期区间、列头排序 + 复位、
|
|
358
376
|
上中下三段布局(列表 / 提交信息 / 变更路径,边界可拖拽)、Actions 徽标、
|
|
@@ -366,7 +384,8 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
366
384
|
- **诊断日志**:统一日志器 + `edrv.dlog.*` RPC + 命令栏「查看诊断日志」,
|
|
367
385
|
排查白屏 / 加载失败时先看它。
|
|
368
386
|
- **RPC**:`svn.status / changes / diffBase / revert / add / log / diffRev / diffPair /
|
|
369
|
-
diffWorking / wcRev / cleanup / update / tortoise
|
|
387
|
+
diffWorking / wcRev / cleanup / update / tortoise`;更新窗口新增 `svn.updateStart /
|
|
388
|
+
updatePoll / updateCancel / updateActive`(`svn.update` 保留兼容)。
|
|
370
389
|
|
|
371
390
|
> 说明:`plans/`(含对标蓝图与实测结论)为本地开发资料,不入库。
|
|
372
391
|
|
|
@@ -417,13 +436,13 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
417
436
|
|
|
418
437
|
```bash
|
|
419
438
|
# ① Git 安装(clone + prepare 构建;推荐打固定 tag)
|
|
420
|
-
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.
|
|
439
|
+
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.12.0
|
|
421
440
|
|
|
422
441
|
# ② npm 注册表(发布到 npm 后)
|
|
423
442
|
dsh plugin --profile web add dsh-vscode-mode
|
|
424
443
|
|
|
425
444
|
# ③ GitHub Release tgz 直装
|
|
426
|
-
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.
|
|
445
|
+
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.12.0/dsh-vscode-mode-0.12.0.tgz
|
|
427
446
|
```
|
|
428
447
|
|
|
429
448
|
> `dsh plugin ...` 是 pnpm 转发器:git 安装会克隆仓库、执行该包 `prepare` 脚本
|
|
@@ -466,16 +485,19 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
466
485
|
|
|
467
486
|
### 快捷键速查
|
|
468
487
|
|
|
488
|
+
以下是桌面端常见默认键位;Web / Linux 的浏览器或系统保留键可能不绑定。
|
|
489
|
+
实际生效键位以「设置 → 快捷键」为准;旧版 DSH 无官方 shortcuts 时沿用原有键位。
|
|
490
|
+
|
|
469
491
|
| 快捷键 | 功能 |
|
|
470
492
|
|---|---|
|
|
471
|
-
| `Ctrl+P` |
|
|
493
|
+
| `Ctrl+Alt+P`(桌面)/ `Ctrl+Alt+Shift+P`(Web Windows/macOS) | 插件快速打开文件(QuickOpen);`Ctrl+P` 由 DSH 官方文件切换使用 |
|
|
472
494
|
| `Ctrl+Shift+P` / `F1` | 命令面板 |
|
|
473
495
|
| `Ctrl+U` | 选中内容加为引用(Add Selection to Chat) |
|
|
474
496
|
| `Ctrl+S` | 保存(另有 700ms 防抖自动保存) |
|
|
475
497
|
| `Ctrl+F` / `Ctrl+G` | 查找 / 跳转行 |
|
|
476
498
|
| `F12` / `Shift+F12` | 转到定义 / 查找所有引用 |
|
|
477
499
|
| `Ctrl+点击` / `Ctrl+hover` | 引用导航 / 可导航标识符提示 |
|
|
478
|
-
|
|
|
500
|
+
| 自定义键位 | 切换文件管理侧边栏(`Ctrl+B` 与 DSH 自身侧栏命令冲突,插件默认不绑定) |
|
|
479
501
|
| `Ctrl+Shift+F` | 工作区搜索(有选中则把选中文本填入搜索框) |
|
|
480
502
|
| `Ctrl+Shift+V` | 切换 Markdown 预览(仅活动文件为 .md 时生效) |
|
|
481
503
|
| `Ctrl+F4` | 关闭当前页签 |
|
|
@@ -509,6 +531,12 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
509
531
|
|
|
510
532
|
## 配置
|
|
511
533
|
|
|
534
|
+
设置 →「快捷键」页:官方目录总览和插件快捷键录制、逐项恢复;编辑通过官方
|
|
535
|
+
shortcuts 服务持久化(Desktop:`userData/keybindings.json`;Web:
|
|
536
|
+
`localStorage` 的 `dsh.keybindings.v1`)。旧版插件 `keybindings` 配置的单候选自定义值
|
|
537
|
+
按当前平台一次性尝试迁入官方存储;旧配置始终保留供其他平台及人工恢复,
|
|
538
|
+
多候选、冲突、不支持或未绑定的旧值不会被部分迁入或删除。
|
|
539
|
+
|
|
512
540
|
设置 →「VSCodeMode」页:
|
|
513
541
|
|
|
514
542
|
| 分区 | 说明 |
|
|
@@ -718,6 +746,29 @@ Keep All / Undo All 却是亮的。修复:单文件 Keep / Undo 覆盖冲突
|
|
|
718
746
|
完整变更见 [GitHub Releases](https://github.com/Lenonss/DSH_VsCodeMode/releases)。
|
|
719
747
|
近期关键版本:
|
|
720
748
|
|
|
749
|
+
- **v0.12.0**:**用户规则双目录兼容 + 官方快捷键接管**——用户规则同时读取
|
|
750
|
+
`DSH_HOME/rules/` 和 `~/.dsh/rules/`,同名以当前目录为准,旧规则原地管理,
|
|
751
|
+
列表与提示词注入采用同一优先级;快捷键迁移到 DSH 官方 shortcuts 目录及独立设置页,
|
|
752
|
+
支持跨平台默认键位、录制、冲突校验和旧配置迁移;插件 QuickOpen 改用
|
|
753
|
+
桌面 `Ctrl+Alt+P` / Web Windows/macOS `Ctrl+Alt+Shift+P`(官方占用 `Ctrl+P`)。恢复插件键位只处理插件命令,
|
|
754
|
+
旧键位配置为跨平台回退始终保留,多候选不做部分导入;没有官方服务的旧版 DSH
|
|
755
|
+
仍使用原有键位派发。
|
|
756
|
+
- **v0.11.0**:**原生 SVN 更新窗口(逐文件实时反馈)+ LSP 补全增强 + 设置文件就地打开**——① 「SVN 更新」
|
|
757
|
+
从窄结果条升级为**插件内更新窗口**(`SvnUpdateDialog` + `svnUpdateJob`):任务启动窗口即出现,实时
|
|
758
|
+
逐文件列表(虚拟化 + 仅贴近底部时自动跟随)、动作着色(A/U/D/G/C/E/R)、完成后汇总版本号 / 计数 /
|
|
759
|
+
耗时 / 截断告警;命令栏、文件树、页签、Monaco 右键四个入口一致,并按右键目标做**路径作用域**
|
|
760
|
+
(只更新该子目录);② 运行中任务按工作副本根去重、可**重挂附着**(刷新或重开弹窗接续同一任务,
|
|
761
|
+
不重复启动),取消走 `svn.updateCancel`;被中断的 svn 操作会锁住工作副本——失败终态识别
|
|
762
|
+
`E155037` 并给出**橙字锁定提示 + 「执行清理」按钮**(确认后调 `svn.cleanup`,绝不自动重跑更新);
|
|
763
|
+
③ 新增 RPC `svn.updateStart / updatePoll / updateCancel / updateActive`(保留 `svn.update` 兼容),
|
|
764
|
+
宿主先以只读 `svn --version --quiet` 探测通过才真启动,输出按行分页并有界缓存;
|
|
765
|
+
④ **LSP 补全增强**:补齐 Lua 保留字与 `---@type` 注解基础类型补全(运行中
|
|
766
|
+
`quickSuggestions.comments` 为 `off` 时也能自动弹出)、Emmylua 成员列表的**回退补全**
|
|
767
|
+
(注解缺失时给可用成员),并按适配器能力位决定是否请求补全候选;
|
|
768
|
+
⑤ **设置配置文件就地打开**:设置页「打开配置文件」不再调系统文本编辑器,改由插件从 host
|
|
769
|
+
settings service 取文档路径、经插件 RPC 路由到内置编辑器;
|
|
770
|
+
⑥ **SVN 日志弹窗视觉重做**(信息层级、修订序列签名元素、动作语义色归位;过滤/排序/多选/键盘/
|
|
771
|
+
右键/拖拽行为不变)。
|
|
721
772
|
- **v0.10.0**:**SVN AI 深度分析发送链路重构**——① 发送主路径切换为**官方 composer
|
|
722
773
|
链路**(`inputFor` setDraft + submit,即 UI「发送」内部路径,带 scope 铸造时延 3 次
|
|
723
774
|
重试),`remote.session` 具名槽 RPC(`{args:{request:{rpcId,payload}}}`,gateway
|