dsh-vscode-mode 0.5.2 → 0.6.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 +78 -5
- package/lib/client.js +5579 -236
- package/lib/client.js.map +1 -1
- package/lib/index.js +2358 -126
- package/lib/index.js.map +1 -1
- package/package.json +1 -1
- package/src/client/compat.ts +1 -1
- 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/editorLimit.ts +31 -0
- package/src/client/index.ts +13 -0
- package/src/client/markdownPreview.ts +24 -0
- package/src/client/md/componentType.ts +28 -0
- package/src/client/md/mdPanel.ts +98 -0
- 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/searchSeed.ts +64 -0
- package/src/client/sidebar/panels/DebugPanel.ts +613 -0
- package/src/client/sidebar/panels/SearchPanel.ts +70 -15
- package/src/client/sidebar/panels/SvnPanel.ts +167 -23
- package/src/client/sidebar/panels/index.ts +19 -0
- package/src/client/sidebar/types.ts +2 -0
- package/src/client/styles/editor.css +186 -1
- 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 +54 -0
- package/src/client/ui/EditorView.ts +711 -29
- package/src/client/ui/McpSettings.ts +29 -0
- package/src/client/ui/SideBySideDiff.tsx +214 -29
- 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 +54 -0
- package/src/client/ui/horizontalWheel.ts +85 -0
- package/src/client/ui/svnExport.ts +71 -0
- package/src/client-primitives.d.ts +34 -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/fileOpenSettings.ts +3 -0
- package/src/index.ts +7 -3
- package/src/lsp/providers.ts +3 -2
- package/src/reveal.ts +31 -20
- package/src/rpc.ts +11 -3
- package/src/search/ripgrep.ts +127 -11
- package/src/shared/dap.ts +262 -0
- package/src/shared/editorLimit.ts +46 -0
- package/src/shared/keybindings.ts +10 -0
- package/src/shared/rpc.ts +40 -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
|
@@ -36,10 +36,21 @@
|
|
|
36
36
|
官方文本查看器;畸形地址自动回落官方查看器。
|
|
37
37
|
- **文件页签**:脏点 / 关闭 / 「+」打开 / 右键菜单 / 固定(📌 排最前、隐藏 ×、
|
|
38
38
|
随工作区持久化;**固定 = 保护**,批量关闭永不误关固定页签)。
|
|
39
|
+
- **页签数量上限**(通用设置 `maxOpenEditors`,默认 10,**0 = 不限制**):超限时自动
|
|
40
|
+
关闭**最久未使用**的页签;固定页签与当前活动页签受保护,脏页签在关闭前静默落盘。
|
|
41
|
+
- **页签栏滚轮横滚**:页签栏溢出(出现水平滚动条)时,鼠标滚轮(含触控板纵向手势)
|
|
42
|
+
直接横向滚动页签栏;不溢出时不接管,`Shift+滚轮` 沿用浏览器原生横滚。
|
|
39
43
|
- **页签右键菜单**(对齐 VS Code):添加到对话 / 关闭·关闭其他·关闭右侧·关闭已
|
|
40
44
|
保存·全部关闭(`Ctrl+F4` 关当前)/ 复制路径·复制相对路径 / 在文件资源管理器
|
|
41
45
|
(视图)中显示。关闭前未保存页签静默落盘;浏览器无法实现的条目(向右拆分 /
|
|
42
46
|
新窗口)不提供。
|
|
47
|
+
- **工作区搜索填充**:编辑器有选中时按 `Ctrl+Shift+F`,选中文本自动填入搜索框并
|
|
48
|
+
立即搜索(多行选区取首行;填入后全选,便于直接改写)。
|
|
49
|
+
- **Markdown 预览**(v0.5.3):打开 `.md` / `.markdown` 后,工具栏「预览」按钮、
|
|
50
|
+
`Ctrl+Shift+V` 或命令栏「切换 Markdown 预览」切入 GFM 渲染(标题/列表/表格/代码块/
|
|
51
|
+
引用/KaTeX),「以源码打开」切回编辑。渲染走官方 `MarkdownText` 原语,零新增依赖、
|
|
52
|
+
自动跟随 DSH 主题;旧版 DSH 缺该原语时降级为纯文本预览。活动文件不是 Markdown 时
|
|
53
|
+
不吞 `Ctrl+Shift+V`(保留「粘贴为纯文本」)。
|
|
43
54
|
- **Monaco Editor**:语法高亮 / 行号 / `Ctrl+F` / `Ctrl+G` / `Ctrl+S` /
|
|
44
55
|
700ms 防抖自动保存;顶部工具栏显示 路径 / 语言 / Ln,Col / 保存状态,提供
|
|
45
56
|
差异 / 侧边栏 / 刷新入口。
|
|
@@ -57,9 +68,9 @@
|
|
|
57
68
|
全局键位派发、Monaco 右键菜单——新增能力只需追加一条命令定义。
|
|
58
69
|
- **开放注册表**:`window.__edrvCommands__` 暴露 `register()` 注册命令、
|
|
59
70
|
`addRuntimeKeybinding()` 绑运行时键位(不落设置 schema)。
|
|
60
|
-
- **开箱
|
|
61
|
-
切换侧边栏 / 工作区搜索 / 后退·前进 / 上下页签 / 关闭当前页签 /
|
|
62
|
-
转到定义 / 查找引用 / 触发 AI 补全 / 配置代码片段 / 插入代码片段 /
|
|
71
|
+
- **开箱 20 条命令**:保存 / 快速打开 / 在文件浏览器中打开 / 显示所有命令 /
|
|
72
|
+
切换侧边栏 / 工作区搜索 / 切换 Markdown 预览 / 后退·前进 / 上下页签 / 关闭当前页签 /
|
|
73
|
+
上下编辑行 / 转到定义 / 查找引用 / 触发 AI 补全 / 配置代码片段 / 插入代码片段 /
|
|
63
74
|
选中内容加为引用。
|
|
64
75
|
|
|
65
76
|
### 3. 代码片段(v0.3.0,VS Code 兼容)
|
|
@@ -341,19 +352,60 @@ TortoiseSVN(`TortoiseProc.exe`)仅作 Windows 过渡增强:自研能力覆
|
|
|
341
352
|
|
|
342
353
|
> 说明:`plans/`(含对标蓝图与实测结论)为本地开发资料,不入库。
|
|
343
354
|
|
|
355
|
+
### 17. 断点调试(DAP,开发中)
|
|
356
|
+
|
|
357
|
+
编辑器内断点调试(DAP 桥通用化:适配器由扩展清单 `contributes.debuggers` 驱动,
|
|
358
|
+
不限定语言;Lua 链路复用已装 emmylua 扩展适配器,**零游戏侧改动**):
|
|
359
|
+
|
|
360
|
+
- **断点**:编辑器行首点击(或 `F9`)切换断点,红点/灰点(禁用)持久化跨刷新保留;
|
|
361
|
+
鼠标悬停在行首/行号区时显示**半透明预览红点**并切换为手型光标(对齐 VS Code 的 breakpoint hint);
|
|
362
|
+
侧栏「调试」面板断点列表支持启停复选框 / 删除 / 点击跳转(VS Code 断点视图形态)。
|
|
363
|
+
- **断点右键菜单与编辑浮层**(逐条对齐 CodeBuddy / VS Code 内核,文案取自官方中文语言包):
|
|
364
|
+
空行 → `添加断点` / `添加条件断点...` / `添加记录点...` / `添加触发的断点...`;
|
|
365
|
+
已有断点 → `删除 断点`(`Delete`)/ `编辑 断点…` / `禁用断点`(记录点场景名词自动切换为「记录点」);
|
|
366
|
+
暂停中额外追加 `运行到行`。「编辑断点…」打开**整宽行内浮层**(View Zone:横跨整个编辑区、
|
|
367
|
+
把下方内容推开,并高亮目标行):左侧「模式下拉」(`表达式` / `命中次数` / `日志消息` / `等待断点`)+
|
|
368
|
+
右侧**单行输入框**,切换模式时各模式内容独立记忆;`Enter` 确认、`Escape` 取消
|
|
369
|
+
(提示写在输入框占位里)。
|
|
370
|
+
- **启动**:编辑区右上浮动工具条选择配置(读取工作区 `.dsh/launch.json`——插件专属文件,
|
|
371
|
+
与 VS Code 的 `.vscode/launch.json` 互不干扰,旧共用文件首次读取时自动迁移过来;类型可用性由
|
|
372
|
+
扩展清单裁决:未发现适配器/入口缺失的类型在下拉置灰并给原因)→ `F5` 启动/继续。
|
|
373
|
+
`emmylua_attach` 按进程名自动附加(复刻 VS Code 扩展的进程枚举语义:窗口标题/进程名包含匹配,
|
|
374
|
+
多候选时工具条切进程选择器明确选择)。
|
|
375
|
+
- **命中暂停**:断点命中自动打开对应文件并高亮停帧行;适配器上报 chunkname 由插件工作区
|
|
376
|
+
索引反向映射为工作区文件(`findFileReq` 反向请求应答)。
|
|
377
|
+
- **四段调试面板**(活动栏「调试」):调用堆栈(点击跳转)/ 变量(懒展开树,Variables + ENV)/
|
|
378
|
+
监视(表达式持久化,暂停态求值)/ 断点 + 底部**调试控制台**(REPL 输入表达式即时求值)。
|
|
379
|
+
- **实现**:host 半 DAP 桥(`src/dap/*`)spawn 扩展清单声明的 DAP 适配器(`runtime: node`
|
|
380
|
+
跑 js 入口 / 无 runtime 直启原生 exe,清单 `args` 随行),事件经缓冲 + 400ms
|
|
381
|
+
活跃轮询上抛;断点先落 host,适配器就绪(initialized)后全量下发,并按适配器能力位
|
|
382
|
+
发送 `configurationDone` 收尾握手(emmylua 未声明该能力 → 不发,行为不变)。
|
|
383
|
+
`.dsh/launch.json` 配置全量透传给适配器(未识别字段原样保留,`${workspaceFolder}`/`${cwd}`
|
|
384
|
+
已替换;`${command:...}` 为 VS Code 命令占位,启动时明确报错而非假解析)。
|
|
385
|
+
命中行解析用 Monaco 官方 `getTargetAtClientPoint`(手算需扣 `padding-top`,实测易错行)。
|
|
386
|
+
- **回执与多线程**:断点回执消费适配器真实响应(可能挪行/判不可验证),未验证断点渲染
|
|
387
|
+
空心红圈(对齐 VS Code);栈帧 id 用适配器原生值(emmylua 保持栈下标私有语义),
|
|
388
|
+
stopped 事件携带的真实 threadId 贯穿调用栈/单步/暂停(多线程适配器必需,emmylua 恒 1 不变);
|
|
389
|
+
断点按适配器声明语言过滤下发,杜绝跨语言串发。
|
|
390
|
+
- **能力边界**:`emmylua_attach` 仅 Windows(适配器原生限制);适配器自动探测
|
|
391
|
+
`~/.vscode/extensions`、`~/.vscode-server/extensions` 与插件扩展目录
|
|
392
|
+
`~/.dsh/dsh-vscode-mode/extensions`(与 LSP 探测根一致);求值/查看变量需处于暂停态。
|
|
393
|
+
`运行到行` = 临时断点 + 继续(命中/手动继续后自动清理,不污染用户断点表);
|
|
394
|
+
`添加触发的断点...` 当前适配器不支持 → 点击给出明确提示(不做静默失败的假功能)。
|
|
395
|
+
|
|
344
396
|
## 安装
|
|
345
397
|
|
|
346
398
|
官方 `dsh plugin` 方式,三选一:
|
|
347
399
|
|
|
348
400
|
```bash
|
|
349
401
|
# ① Git 安装(clone + prepare 构建;推荐打固定 tag)
|
|
350
|
-
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.
|
|
402
|
+
dsh plugin --profile web add github:Lenonss/DSH_VsCodeMode#v0.6.0
|
|
351
403
|
|
|
352
404
|
# ② npm 注册表(发布到 npm 后)
|
|
353
405
|
dsh plugin --profile web add dsh-vscode-mode
|
|
354
406
|
|
|
355
407
|
# ③ GitHub Release tgz 直装
|
|
356
|
-
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.
|
|
408
|
+
dsh plugin --profile web add https://github.com/Lenonss/DSH_VsCodeMode/releases/download/v0.6.0/dsh-vscode-mode-0.6.0.tgz
|
|
357
409
|
```
|
|
358
410
|
|
|
359
411
|
> `dsh plugin ...` 是 pnpm 转发器:git 安装会克隆仓库、执行该包 `prepare` 脚本
|
|
@@ -406,11 +458,17 @@ bundles 层后重启 DSH 即自动把插件行挂进 loader 树。**不要**再
|
|
|
406
458
|
| `F12` / `Shift+F12` | 转到定义 / 查找所有引用 |
|
|
407
459
|
| `Ctrl+点击` / `Ctrl+hover` | 引用导航 / 可导航标识符提示 |
|
|
408
460
|
| `Ctrl+B` | 切换文件管理侧边栏 |
|
|
461
|
+
| `Ctrl+Shift+F` | 工作区搜索(有选中则把选中文本填入搜索框) |
|
|
462
|
+
| `Ctrl+Shift+V` | 切换 Markdown 预览(仅活动文件为 .md 时生效) |
|
|
409
463
|
| `Ctrl+F4` | 关闭当前页签 |
|
|
410
464
|
| `Alt+←` / `Alt+→` | 后退 / 前进(跨文件恢复焦点位置) |
|
|
411
465
|
| `Ctrl+Alt+-` / `Ctrl+Shift+-` | 后退 / 前进(同导航历史) |
|
|
412
466
|
| 鼠标侧键 XButton | 后退 / 前进 |
|
|
413
467
|
| `Tab` / `Enter`(补全中) | 展开代码片段 |
|
|
468
|
+
| `F9` | 调试:切换光标行断点 |
|
|
469
|
+
| `F5` | 调试:启动 / 继续 |
|
|
470
|
+
| `F10` / `F11` / `Shift+F11` | 调试:单步跳过 / 步入 / 步出(暂停态) |
|
|
471
|
+
| `Shift+F5` | 调试:停止 |
|
|
414
472
|
|
|
415
473
|
### 差异审查流程
|
|
416
474
|
|
|
@@ -640,6 +698,21 @@ Keep All / Undo All 却是亮的。修复:单文件 Keep / Undo 覆盖冲突
|
|
|
640
698
|
完整变更见 [GitHub Releases](https://github.com/Lenonss/DSH_VsCodeMode/releases)。
|
|
641
699
|
近期关键版本:
|
|
642
700
|
|
|
701
|
+
- **v0.6.0**:**编辑器内断点调试(DAP)+ SVN 补丁/汇总/导出**——① DAP 桥通用化
|
|
702
|
+
(适配器由扩展清单 `contributes.debuggers` 驱动,Lua 链路复用 emmylua 适配器、零游戏侧
|
|
703
|
+
改动):行首点击/`F9` 断点(悬停预览红点、禁用灰点、跨刷新持久化)、断点右键菜单与
|
|
704
|
+
**整宽行内编辑浮层**(表达式/命中次数/日志消息/等待断点,模式内容独立记忆)、
|
|
705
|
+
`.dsh/launch.json` 启动配置(`F5` 启动/继续、`emmylua_attach` 按进程名自动附加与多候选
|
|
706
|
+
选择)、命中暂停跳转(chunkname 反向映射工作区文件)、活动栏**四段调试面板**
|
|
707
|
+
(调用堆栈/变量/监视/断点 + 调试控制台 REPL);② SVN 增强:补丁对话框、汇总对话框、
|
|
708
|
+
导出(`svnExport`)。
|
|
709
|
+
- **v0.5.3**:**编辑器四项体验增强**——① `Ctrl+Shift+F` 时编辑器有选中则把选中文本
|
|
710
|
+
自动填入搜索框并立即搜索(多行选区取首行;侧栏原本收起也生效);② 页签数量上限
|
|
711
|
+
(通用设置 `maxOpenEditors`,默认 10,**0 = 不限制**),超限自动关闭**最久未使用**的
|
|
712
|
+
页签,固定页签与活动页签受保护、脏页签关闭前静默落盘;③ 页签栏溢出时鼠标滚轮即可
|
|
713
|
+
横向滚动(`Shift+滚轮` 沿用浏览器原生横滚,不溢出时不接管);④ **Markdown 预览**:
|
|
714
|
+
`.md` / `.markdown` 经工具栏按钮、`Ctrl+Shift+V` 或命令栏切换 GFM 渲染(标题/列表/
|
|
715
|
+
表格/代码块/KaTeX),复用官方 `MarkdownText` 原语,零新增依赖、自动跟随 DSH 主题。
|
|
643
716
|
- **v0.5.2**:**修复 macOS / npm 安装形态的兼容问题**——① schema 库按候选链解析
|
|
644
717
|
(官方已把 vendored schemastery 改名为 `@deepseek-ai/schemastery`,安装树里没有裸
|
|
645
718
|
`schemastery`),且 `@deepseek-ai/dsh-settings` 缺失不再拖垮整体 → 修复从 npm 安装时
|