dsh-editor-selection-vscode
DSH 编辑器选区桥接扩展:把 VS Code 的主选区(路径+行区间,不含任何文件内容)推送给本地 DeepSeek Harness,使对话自动聚焦你正在看的代码。
- Stars
- 0
- Language
- JavaScript
- Created
- Aug 23, 2026
- Updated
- Aug 23, 2026
Introduction
dsh-editor-selection-vscode
DSH 编辑器选区桥接扩展:把 VS Code 的主选区(路径+行区间,不含任何文件内容)推送给本地 DeepSeek Harness,使对话自动聚焦你正在看的代码。
工作方式
- 监听
onDidChangeTextEditorSelection/onDidChangeActiveTextEditor,250ms 防抖后发送一帧:{ "v": 1, "type": "focus", "workspaceFolderPath": "…", "filePath": "src/app.ts", "range": { "startLine": 10, "startCol": 0, "endLine": 25, "endCol": 3 }, "dirty": false } - 首次使用发送
pair-request;在 DSH 侧边栏 🔔 中点确认后,token 自动存入 SecretStorage,之后每次启动静默auth。 - 断线自动重连(1s→30s 指数退避),30s 心跳保活;状态栏图标实时反映链路状态。
构建(离线)
powershell -ExecutionPolicy Bypass -File scripts\link-deps.ps1 # junction typescript/@types/node
node node_modules\typescript\lib\tsc.js -p . # 产物在 out\
# 交叉冒烟:本扩展 WsClient <-> 插件 WsConnection 真实回环
node scripts\cross-smoke.mjs
离线环境没有 @types/vscode,
types/vscode.d.ts是一份仅覆盖实际用面的诚实桩;接入真实编译环境时可删除。
安装到 VS Code
把整个文件夹复制为扩展目录即可被扫描:
$dst = "$env:USERPROFILE\.vscode\extensions\local-dsh-plugins.dsh-editor-selection-vscode-0.1.0"
Remove-Item $dst -Recurse -Force -ErrorAction SilentlyContinue
New-Item -ItemType Directory -Force -Path $dst | Out-Null
Copy-Item -Recurse -Force -Path package.json,out,types -Destination $dst
# 重启 VS Code
开发调试:code --extensionDevelopmentPath=<本目录>。
配置
| 键 | 默认 | 说明 |
|---|---|---|
dshEditorSelection.endpoint | http://127.0.0.1:3080 | 本地 DSH 主机地址 |
dshEditorSelection.enabled | true | 总开关(关闭即停止采集与发送) |
dshEditorSelection.debounceMs | 250 | 选区事件防抖 |
命令
- DSH Selection: Reconnect now — 立即重连(也是点击状态栏图标的动作)
- DSH Selection: Request pairing from DSH — 删除本地 token 并重新走配对流程
- 解释代码(编辑器右键菜单,需先选中代码) — 把选区发给 DSH,DSH 会在最近活跃的会话里自动开始解释该段代码
选区语义
| 场景 | 发送内容 | DSH 收到 |
|---|---|---|
| 鼠标/键盘选中了某几行 | focus { 文件绝对路径, 行区间 } | @文件:起-止 |
| 没有选择,光标停在文件里 | focus { 文件绝对路径 }(无区间) | @文件(整个文件) |
| 光标不在任何文件里(设置页/输出面板/无路径草稿等) | clear,不发送路径 | 焦点清空 |
隐私
- 只发送路径与行号;打开/关闭共享的最终决定权在 DSH 侧的眼睛开关。
- token 仅存于 VS Code SecretStorage;吊销请在 DSH 侧边栏设备列表操作。