dsh-vscode-mode 0.5.3 → 0.7.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 +72 -2
- package/lib/client.js +12082 -6420
- package/lib/client.js.map +1 -1
- package/lib/index.js +2750 -147
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/copyText.ts +28 -0
- package/src/client/dap/BpWidget.ts +262 -0
- package/src/client/dap/bpMenu.ts +91 -0
- package/src/client/dap/bpRowMenu.ts +53 -0
- package/src/client/dap/breakpoints.ts +222 -0
- package/src/client/dap/decorate.ts +128 -0
- package/src/client/dap/hintLine.ts +29 -0
- package/src/client/dap/hover.ts +166 -0
- package/src/client/dap/hoverMode.ts +159 -0
- package/src/client/dap/hoverTree.ts +722 -0
- package/src/client/dap/launchInsert.ts +229 -0
- package/src/client/dap/launchSnippetProvider.ts +206 -0
- package/src/client/dap/modelPath.ts +23 -0
- package/src/client/dap/panelSplit.ts +105 -0
- package/src/client/dap/pidPick.ts +24 -0
- package/src/client/dap/store.ts +571 -0
- package/src/client/dap/toolbarDrag.ts +51 -0
- package/src/client/dap/trace.ts +22 -0
- package/src/client/dap/variableTree.ts +62 -0
- package/src/client/fileClipboard.ts +46 -0
- package/src/client/index.ts +12 -3
- package/src/client/monaco/lsp/index.ts +15 -0
- package/src/client/monaco/lsp/providers.ts +2 -0
- package/src/client/monaco/theme.ts +15 -0
- package/src/client/openWithDialog.ts +66 -0
- package/src/client/searchSeed.ts +36 -0
- package/src/client/sidebar/contextMenu.ts +51 -10
- package/src/client/sidebar/menuItems.ts +473 -50
- package/src/client/sidebar/panels/DebugPanel.ts +613 -0
- package/src/client/sidebar/panels/SearchPanel.ts +24 -3
- package/src/client/sidebar/panels/SvnPanel.ts +167 -23
- package/src/client/sidebar/panels/index.ts +19 -0
- package/src/client/sidebar/types.ts +8 -0
- package/src/client/styles/editor.css +176 -0
- package/src/client/svnActions.ts +18 -1
- package/src/client/svnLog.ts +3 -3
- package/src/client/svnStatus.ts +140 -2
- package/src/client/tabActions.ts +22 -10
- package/src/client/ui/EditorView.ts +625 -23
- package/src/client/ui/OfficialSideTab.ts +1 -0
- package/src/client/ui/PromptDialog.ts +63 -0
- package/src/client/ui/SideBySideDiff.tsx +214 -29
- package/src/client/ui/SideEditorTab.ts +1 -0
- package/src/client/ui/SvnDiffPanel.ts +21 -8
- package/src/client/ui/SvnLogDialog.ts +44 -2
- package/src/client/ui/SvnPatchDialog.ts +63 -0
- package/src/client/ui/SvnSumDialog.ts +77 -0
- package/src/client/ui/commandCatalog.ts +63 -0
- package/src/client/ui/svnExport.ts +71 -0
- package/src/dap/configSnippets.ts +269 -0
- package/src/dap/discovery.ts +198 -0
- package/src/dap/launchConfig.ts +127 -0
- package/src/dap/manager.ts +588 -0
- package/src/dap/processList.ts +76 -0
- package/src/dap/protocol.ts +80 -0
- package/src/dap/provider.ts +49 -0
- package/src/dap/rpc.ts +192 -0
- package/src/dap/sourcePath.ts +82 -0
- package/src/index.ts +7 -3
- package/src/lsp/providers.ts +3 -2
- package/src/reveal.ts +31 -20
- package/src/rpc.ts +209 -5
- package/src/search/ripgrep.ts +127 -11
- package/src/shared/dap.ts +262 -0
- package/src/shared/fsNames.ts +115 -0
- package/src/shared/keybindings.ts +9 -0
- package/src/shared/rpc.ts +52 -2
- package/src/shared/svn.ts +147 -0
- package/src/shared/svnActions.ts +20 -0
- package/src/svn.ts +320 -11
- package/src/workspace.ts +0 -75
package/README.md
CHANGED
|
@@ -160,6 +160,18 @@ cmaps 支持中文渲染);工具条进入注释编辑:✎ 文本框 / 🖌
|
|
|
160
160
|
可调 180–560),拖拽低于最小宽度自动收起。
|
|
161
161
|
- 面板经注册表装配(`ctx.provide('edrvSidebarPanels')`),新增面板只加一条注册,
|
|
162
162
|
不改编辑器布局。
|
|
163
|
+
- **资源管理器右键菜单**(v0.7.0,对齐 CodeBuddy 参考图,区分文件 / 文件夹 / 根空白区):
|
|
164
|
+
- 文件:打开方式…(已注册打开器中选择)| 在文件资源管理器中显示 | 添加引用
|
|
165
|
+
到对话 | 剪切·复制 | 复制路径·复制相对路径 | 重命名…·删除 | SVN 组。
|
|
166
|
+
- 文件夹:新建文件…·新建文件夹(名称支持 `a/b.c` 嵌套)| 在文件资源管理器
|
|
167
|
+
中显示 | 添加引用到对话·在文件夹中查找…(搜索面板带目录过滤)| 剪切·复制·
|
|
168
|
+
粘贴(剪贴板空时灰显)| 复制路径·复制相对路径 | 重命名…·永久删除 | SVN 组。
|
|
169
|
+
- 根空白区 = 文件夹菜单去掉全部「仅非根」项;参考图中本架构无法实现的条目
|
|
170
|
+
(在集成终端中打开 / 运行测试 / Build 等)不显示。
|
|
171
|
+
- 文件管理写操作走 `edrv.fsCreateFile / fsCreateDir / fsRename / fsDelete /
|
|
172
|
+
fsCopy / fsMove`(工作区边界 + 同名拒绝 + 名称校验),删除带确认;重命名 /
|
|
173
|
+
移动 / 删除与开着的页签自动同步(路径改写 / 关签)。剪切·复制·粘贴为应用内
|
|
174
|
+
文件剪贴板(浏览器无系统文件剪贴板,语义对齐 VS Code)。
|
|
163
175
|
|
|
164
176
|
### 10. 规则管理(v0.1.49 / v0.1.50,参考 Codebuddy)
|
|
165
177
|
|
|
@@ -352,19 +364,60 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
352
364
|
|
|
353
365
|
> 说明:`plans/`(含对标蓝图与实测结论)为本地开发资料,不入库。
|
|
354
366
|
|
|
367
|
+
### 17. 断点调试(DAP,开发中)
|
|
368
|
+
|
|
369
|
+
编辑器内断点调试(DAP 桥通用化:适配器由扩展清单 `contributes.debuggers` 驱动,
|
|
370
|
+
不限定语言;Lua 链路复用已装 emmylua 扩展适配器,**零游戏侧改动**):
|
|
371
|
+
|
|
372
|
+
- **断点**:编辑器行首点击(或 `F9`)切换断点,红点/灰点(禁用)持久化跨刷新保留;
|
|
373
|
+
鼠标悬停在行首/行号区时显示**半透明预览红点**并切换为手型光标(对齐 VS Code 的 breakpoint hint);
|
|
374
|
+
侧栏「调试」面板断点列表支持启停复选框 / 删除 / 点击跳转(VS Code 断点视图形态)。
|
|
375
|
+
- **断点右键菜单与编辑浮层**(逐条对齐 CodeBuddy / VS Code 内核,文案取自官方中文语言包):
|
|
376
|
+
空行 → `添加断点` / `添加条件断点...` / `添加记录点...` / `添加触发的断点...`;
|
|
377
|
+
已有断点 → `删除 断点`(`Delete`)/ `编辑 断点…` / `禁用断点`(记录点场景名词自动切换为「记录点」);
|
|
378
|
+
暂停中额外追加 `运行到行`。「编辑断点…」打开**整宽行内浮层**(View Zone:横跨整个编辑区、
|
|
379
|
+
把下方内容推开,并高亮目标行):左侧「模式下拉」(`表达式` / `命中次数` / `日志消息` / `等待断点`)+
|
|
380
|
+
右侧**单行输入框**,切换模式时各模式内容独立记忆;`Enter` 确认、`Escape` 取消
|
|
381
|
+
(提示写在输入框占位里)。
|
|
382
|
+
- **启动**:编辑区右上浮动工具条选择配置(读取工作区 `.dsh/launch.json`——插件专属文件,
|
|
383
|
+
与 VS Code 的 `.vscode/launch.json` 互不干扰,旧共用文件首次读取时自动迁移过来;类型可用性由
|
|
384
|
+
扩展清单裁决:未发现适配器/入口缺失的类型在下拉置灰并给原因)→ `F5` 启动/继续。
|
|
385
|
+
`emmylua_attach` 按进程名自动附加(复刻 VS Code 扩展的进程枚举语义:窗口标题/进程名包含匹配,
|
|
386
|
+
多候选时工具条切进程选择器明确选择)。
|
|
387
|
+
- **命中暂停**:断点命中自动打开对应文件并高亮停帧行;适配器上报 chunkname 由插件工作区
|
|
388
|
+
索引反向映射为工作区文件(`findFileReq` 反向请求应答)。
|
|
389
|
+
- **四段调试面板**(活动栏「调试」):调用堆栈(点击跳转)/ 变量(懒展开树,Variables + ENV)/
|
|
390
|
+
监视(表达式持久化,暂停态求值)/ 断点 + 底部**调试控制台**(REPL 输入表达式即时求值)。
|
|
391
|
+
- **实现**:host 半 DAP 桥(`src/dap/*`)spawn 扩展清单声明的 DAP 适配器(`runtime: node`
|
|
392
|
+
跑 js 入口 / 无 runtime 直启原生 exe,清单 `args` 随行),事件经缓冲 + 400ms
|
|
393
|
+
活跃轮询上抛;断点先落 host,适配器就绪(initialized)后全量下发,并按适配器能力位
|
|
394
|
+
发送 `configurationDone` 收尾握手(emmylua 未声明该能力 → 不发,行为不变)。
|
|
395
|
+
`.dsh/launch.json` 配置全量透传给适配器(未识别字段原样保留,`${workspaceFolder}`/`${cwd}`
|
|
396
|
+
已替换;`${command:...}` 为 VS Code 命令占位,启动时明确报错而非假解析)。
|
|
397
|
+
命中行解析用 Monaco 官方 `getTargetAtClientPoint`(手算需扣 `padding-top`,实测易错行)。
|
|
398
|
+
- **回执与多线程**:断点回执消费适配器真实响应(可能挪行/判不可验证),未验证断点渲染
|
|
399
|
+
空心红圈(对齐 VS Code);栈帧 id 用适配器原生值(emmylua 保持栈下标私有语义),
|
|
400
|
+
stopped 事件携带的真实 threadId 贯穿调用栈/单步/暂停(多线程适配器必需,emmylua 恒 1 不变);
|
|
401
|
+
断点按适配器声明语言过滤下发,杜绝跨语言串发。
|
|
402
|
+
- **能力边界**:`emmylua_attach` 仅 Windows(适配器原生限制);适配器自动探测
|
|
403
|
+
`~/.vscode/extensions`、`~/.vscode-server/extensions` 与插件扩展目录
|
|
404
|
+
`~/.dsh/dsh-vscode-mode/extensions`(与 LSP 探测根一致);求值/查看变量需处于暂停态。
|
|
405
|
+
`运行到行` = 临时断点 + 继续(命中/手动继续后自动清理,不污染用户断点表);
|
|
406
|
+
`添加触发的断点...` 当前适配器不支持 → 点击给出明确提示(不做静默失败的假功能)。
|
|
407
|
+
|
|
355
408
|
## 安装
|
|
356
409
|
|
|
357
410
|
官方 `dsh plugin` 方式,三选一:
|
|
358
411
|
|
|
359
412
|
```bash
|
|
360
413
|
# ① Git 安装(clone + prepare 构建;推荐打固定 tag)
|
|
361
|
-
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.
|
|
414
|
+
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.7.0
|
|
362
415
|
|
|
363
416
|
# ② npm 注册表(发布到 npm 后)
|
|
364
417
|
dsh plugin --profile web add dsh-vscode-mode
|
|
365
418
|
|
|
366
419
|
# ③ GitHub Release tgz 直装
|
|
367
|
-
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.
|
|
420
|
+
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.7.0/dsh-vscode-mode-0.7.0.tgz
|
|
368
421
|
```
|
|
369
422
|
|
|
370
423
|
> `dsh plugin ...` 是 pnpm 转发器:git 安装会克隆仓库、执行该包 `prepare` 脚本
|
|
@@ -424,6 +477,10 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
424
477
|
| `Ctrl+Alt+-` / `Ctrl+Shift+-` | 后退 / 前进(同导航历史) |
|
|
425
478
|
| 鼠标侧键 XButton | 后退 / 前进 |
|
|
426
479
|
| `Tab` / `Enter`(补全中) | 展开代码片段 |
|
|
480
|
+
| `F9` | 调试:切换光标行断点 |
|
|
481
|
+
| `F5` | 调试:启动 / 继续 |
|
|
482
|
+
| `F10` / `F11` / `Shift+F11` | 调试:单步跳过 / 步入 / 步出(暂停态) |
|
|
483
|
+
| `Shift+F5` | 调试:停止 |
|
|
427
484
|
|
|
428
485
|
### 差异审查流程
|
|
429
486
|
|
|
@@ -653,6 +710,19 @@ Keep All / Undo All 却是亮的。修复:单文件 Keep / Undo 覆盖冲突
|
|
|
653
710
|
完整变更见 [GitHub Releases](https://github.com/Lenonss/DSH_VsCodeMode/releases)。
|
|
654
711
|
近期关键版本:
|
|
655
712
|
|
|
713
|
+
- **v0.7.0**:**资源管理器右键菜单**——区分文件 / 文件夹 / 根空白区三套菜单:打开方式…
|
|
714
|
+
(已注册打开器选择)、在文件资源管理器中显示、添加引用到对话、新建文件/文件夹
|
|
715
|
+
(支持 `a/b.c` 嵌套)、在文件夹中查找(搜索面板目录过滤)、剪切·复制·粘贴(应用内
|
|
716
|
+
文件剪贴板,语义对齐 VS Code)、复制路径/相对路径、重命名/删除/移动(写操作走
|
|
717
|
+
`edrv.fs*` 边界校验,删除带确认,与开着页签自动同步)、SVN 组。
|
|
718
|
+
- **v0.6.0**:**编辑器内断点调试(DAP)+ SVN 补丁/汇总/导出**——① DAP 桥通用化
|
|
719
|
+
(适配器由扩展清单 `contributes.debuggers` 驱动,Lua 链路复用 emmylua 适配器、零游戏侧
|
|
720
|
+
改动):行首点击/`F9` 断点(悬停预览红点、禁用灰点、跨刷新持久化)、断点右键菜单与
|
|
721
|
+
**整宽行内编辑浮层**(表达式/命中次数/日志消息/等待断点,模式内容独立记忆)、
|
|
722
|
+
`.dsh/launch.json` 启动配置(`F5` 启动/继续、`emmylua_attach` 按进程名自动附加与多候选
|
|
723
|
+
选择)、命中暂停跳转(chunkname 反向映射工作区文件)、活动栏**四段调试面板**
|
|
724
|
+
(调用堆栈/变量/监视/断点 + 调试控制台 REPL);② SVN 增强:补丁对话框、汇总对话框、
|
|
725
|
+
导出(`svnExport`)。
|
|
656
726
|
- **v0.5.3**:**编辑器四项体验增强**——① `Ctrl+Shift+F` 时编辑器有选中则把选中文本
|
|
657
727
|
自动填入搜索框并立即搜索(多行选区取首行;侧栏原本收起也生效);② 页签数量上限
|
|
658
728
|
(通用设置 `maxOpenEditors`,默认 10,**0 = 不限制**),超限自动关闭**最久未使用**的
|