dsh-easy-lsp
已验证dsh-easy-lsp · v0.2.0 · MIT · Web 界面
DSH 语言服务器(LSP)图形化管理插件:自持 LSP 引擎(跳转/引用/hover/诊断/符号/重命名/格式化/代码操作/调用层级)+ 一键安装器 + 主动诊断注入,配置持久化到 settings.yaml,变更实时生效。
安装
dsh plugin add dsh-easy-lsp 用 dsh --profile default --dump-config 确认 layer 已生效 —— 参见安装指南。
源码
发布到 npm 但没有公开仓库。安装前请检查包内容。
标签
作者
说明文档
dsh-easy-lsp
DSH 语言服务器(LSP)图形化管理插件:自持 LSP 引擎 + 一键安装器 + 主动诊断注入,统一在「LSP 服务」页面可视化管理。
English | 中文

功能
- 代码智能:
lsp工具 —— goToDefinition / findReferences / goToImplementation / hover。 - 按需诊断:
lsp_diagnostics工具 —— 模型自查文件的编译/类型错误(依赖服务器推送诊断,如 pyright)。 - 符号查找:
lsp_symbols工具 —— 文档符号列表(官方 LSP 工具族没有的能力)。 - 语义重命名:
lsp_rename工具 —— 跨整个项目重命名符号(含跨文件引用与重载);返回按文件分组的编辑清单(带原文锚点),由模型自行应用。 - 代码操作:
lsp_code_actions工具 —— 列出服务器提供的标准修复(自动导入、修类型错误、快速重构)及其编辑;仅命令型动作标注「不可执行」。 - 格式化:
lsp_format工具 —— 按服务器项目规则格式化文件;整文件替换时返回完整新内容,用 write 重写即可。 - 调用层级:
lsp_callers工具 —— 符号的语义级 callers/callees 及精确调用点(单层)。 - 主动诊断注入:agent 写/改代码后,未解决错误自动注入下一轮系统提示;半成品噪音由稳定性门槛过滤。
- 可视化管理:设置 → LSP 服务 —— 新增/编辑/启用/删除/测试(测试结果展示服务器支持的能力)。
- 一键安装器:内置 37 项预设(30 自动 + 7 指引),覆盖主流语言;装到用户级目录,无需 sudo。
- 自持引擎:不依赖官方
dsh-lsp/dsh-lsp-stdio/dsh-tool-lsp。
安装
dsh plugin --profile web add dsh-easy-lsp # 安装
dsh plugin --profile web remove dsh-easy-lsp # 卸载
重启 dsh web,然后:设置 → LSP 服务 → 添加语言服务器(如 TypeScript / Python)→ 一键安装或复制命令 → 保存并启用。
冲突提示:工具名
lsp与官方dsh-tool-lsp同名,二者选一。
配置
服务器配置存放在 ~/.dsh/settings.yaml 的 lsp 段,在界面维护(手改也会热同步):
lsp:
servers:
typescript:
enabled: true
command: typescript-language-server
args: ['--stdio']
extensionToLanguage: { '.ts': 'typescript', '.tsx': 'typescript' }
diagnostics:
autoRun: true
inject: true
stabilityRounds: 2
注意事项
- typescript-language-server 不推送瞬开诊断;pyright 类服务器正常。此类服务器的 code actions 在无诊断上下文中收集,可能不完整。
- typescript-language-server 无 callHierarchy 能力;pyright 无文档格式化能力 —— 不支持的操作会快速失败并给出明确提示。
- rename / format / code actions / call hierarchy 只返回编辑清单或信息,由模型用现有 write/edit 工具应用(不直接写文件)。
- 同一扩展名由第一个启用的服务器处理(UI 会提示冲突)。
- 主动注入缓存为全局(文件级),多会话共享同一文件的诊断状态。
- 不做:completion / signatureHelp / inlayHint / semanticTokens / workspace/symbol / typeHierarchy,以及代码图谱类能力(图谱请经 MCP 服务器接入)。
许可
MIT