dshseek

seek://map/dsh-lsp-diagnostics

dsh-lsp-diagnostics 实时诊断

工具集成社区★ 1验证于 2026年9月15日lemonxiny55/dsh-lsp-diagnostics← 返回地图

#lsp #diagnostics #developer-experience #typescript #python

TL;DR

据其 README,dsh-lsp-diagnostics 给 dsh agent 装上实时编译器/LSP 诊断,闭合「编辑 → 诊断 → 修复」循环:模型改完文件,立刻看到哪里坏了(file:line:col + 错误码 + 消息),然后修掉。提供 lsp_diagnostics / lsp_workspace_errors / lsp_hover 工具,并在 harness 写盘事件后自动注入本次编辑新增/变化的诊断增量,绝不灌入整个工作区;TypeScript/JavaScript 与 Python 均获支持,Rust 有意推迟。由 lemonxiny55 维护,npm 包 dsh-lsp-diagnostics 已发布。

dsh-lsp-diagnostics 把 IDE 给人的反馈循环交给 dsh agent:模型经 harness 编辑文件后立刻看到哪里坏了——file:line:col、错误码、消息——通过 `lsp_diagnostics` / `lsp_workspace_errors` / `lsp_hover` 工具或自动注入的单次编辑增量获得,绝不灌入整个工作区。TypeScript/JavaScript 与 Python 均获支持(服务器均可 npm 安装);服务器崩溃会优雅降级而非无限重启,所有出口都有 token 成本护栏。

速览

install
npx @deepseek-ai/dsh plugin --profile web add dsh-lsp-diagnostics
license
MIT
note
README 自述 harness 处于开发者预览,上游插件 API 可能有破坏性变更;LSP 服务器须自装于 PATH,本插件按设计不捆绑任何服务器。

要点

  • 据其 README,模型获得 lsp_diagnostics(某文件或全部已见文件的当前诊断,可按严重级别过滤、限量截断,README 建议编辑完文件后立刻调用)、lsp_workspace_errors(整个工作区「现在到底哪里坏了」的视图)与 lsp_hover(某位置的类型/签名信息,辅助工具)
  • 可选的自动注入段落:模型经 harness 写入/编辑文件后,插件订阅 fs/observed 事件、在语言服务器上刷新该文件,只注入本次编辑新增/变化的诊断——绝不灌入整个工作区;过期增量按 sectionTtlMs 失效,autoInject: false 可关闭、仅保留工具调用
  • 语言支持:TypeScript/JavaScript 走 typescript-language-server,Python 走 pyright-langserver,均可用 npm 安装、无需 Python 运行时与原生二进制;Rust(rust-analyzer 为原生二进制)有意推迟,servers.ts 是后续服务器接入的接缝
  • 生命周期与成本护栏:语言服务器按需懒启动;崩溃的服务器会重启并重放已打开文档,再度崩溃则把该语言标记为 degraded 并给出清晰消息,不做无限重启;工具输出与注入段落都受 maxDiagnostics 硬上限约束,注入的只是单次编辑增量
  • 安装要求:dsh(任意安装路径均可)、Node ≥ 22、LSP 服务器在 PATH 上——README 给出 npm i -g typescript-language-server typescript 与 npm i -g pyright;缺服务器时工具会明确报错并附确切安装命令
  • README 明示的限制:lsp_workspace_errors 只覆盖服务器本会话见过的文件(标准 LSP 打开文件语义,非全仓库批量扫描);harness 之外的直接编辑不会被观察,直到调用工具;harness 处于开发者预览,上游插件 API 可能有破坏性变更。npm 包 dsh-lsp-diagnostics 已发布,本站 2026-09-15 探测 registry,latest 读到 0.1.1

常见问题

它和 IDE 里的诊断有什么不同?

消费者不同:据其 README,诊断是写给模型看的——模型编辑文件后立刻拿到 file:line:col + 错误码 + 消息并自行修复,闭合「编辑 → 诊断 → 修复」循环;README 自述这是 Cursor 的杀手级特性在 dsh agent 上的对应物。execute 返回规范化 JSON(severity、range、code、message、source),紧凑表格只是渲染视图。

要自己安装语言服务器吗?

要。README 明确服务器必须在 PATH 上(或经 serverPath 按服务器覆盖二进制路径),本插件按设计不捆绑任何服务器;TypeScript/JavaScript 与 Python 的服务器均可用 npm 安装(npm i -g typescript-language-server typescript、npm i -g pyright),无需 Python 运行时、没有原生二进制;缺服务器时工具会报出确切安装命令。

自动注入会把整个工作区的诊断灌进提示词吗?

不会。据其 README,注入的只是本次编辑新增/变化的增量,且受 maxDiagnostics 硬上限与 sectionTtlMs 时效约束;autoInject: false 可整体关闭自动注入、仅靠工具调用。lsp_workspace_errors 同样只覆盖服务器本会话见过的文件——标准 LSP 打开文件语义,不是全仓库批量扫描。

支持 Rust 或其他语言吗?

暂不支持。据其 README,Rust(rust-analyzer 是原生二进制)被有意推迟;servers.ts 是后续服务器接入的接缝(command、args、安装提示),languages 配置默认只启动 typescript / javascript / python 的服务器,其中 TS 与 JS 共用一个服务器。

官方参考

GitHub 仓库 — lemonxiny55/dsh-lsp-diagnostics ↗