Back to home@yingzaicc

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,使对话自动聚焦你正在看的代码。

工作方式

  1. 监听 onDidChangeTextEditorSelection / onDidChangeActiveTextEditor,250ms 防抖后发送一帧:
    { "v": 1, "type": "focus", "workspaceFolderPath": "…", "filePath": "src/app.ts",
      "range": { "startLine": 10, "startCol": 0, "endLine": 25, "endCol": 3 }, "dirty": false }
    
  2. 首次使用发送 pair-request;在 DSH 侧边栏 🔔 中点确认后,token 自动存入 SecretStorage,之后每次启动静默 auth
  3. 断线自动重连(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.endpointhttp://127.0.0.1:3080本地 DSH 主机地址
dshEditorSelection.enabledtrue总开关(关闭即停止采集与发送)
dshEditorSelection.debounceMs250选区事件防抖

命令

  • DSH Selection: Reconnect now — 立即重连(也是点击状态栏图标的动作)
  • DSH Selection: Request pairing from DSH — 删除本地 token 并重新走配对流程
  • 解释代码(编辑器右键菜单,需先选中代码) — 把选区发给 DSH,DSH 会在最近活跃的会话里自动开始解释该段代码

选区语义

场景发送内容DSH 收到
鼠标/键盘选中了某几行focus { 文件绝对路径, 行区间 }@文件:起-止
没有选择,光标停在文件里focus { 文件绝对路径 }(无区间)@文件(整个文件)
光标不在任何文件里(设置页/输出面板/无路径草稿等)clear,不发送路径焦点清空

隐私

  • 只发送路径与行号;打开/关闭共享的最终决定权在 DSH 侧的眼睛开关。
  • token 仅存于 VS Code SecretStorage;吊销请在 DSH 侧边栏设备列表操作。