← 返回列表
未验证
本地开发/验证可直接执行 pnpm install && pnpm build;语言 server 二进制仍需按各包…
尚未跑自动兼容性验证,可查看页面内的依赖与入口分析。 · 最近上游提交 2026/9/1 · 已提供中文文档
DeepSeek Harness 的开箱即用按语言 LSP 配置包:12 个 Cordis 插件(每种语言一个),复用共享的 @deepseek-ai/dsh-lsp-stdio + @deepseek-ai/dsh-tool-lsp 基础
综合分
30.3
GitHub 分
30.3
用户评分
—
★ Stars
3
周下载量
—
安装插件(需先安装 dsh CLI 引擎:npm install -g @deepseek-ai/dsh)
dsh plugin --profile web add 988hj7tczd-oss/dsh-lsp-packs该插件未发布到 npm,走 GitHub 源安装(pnpm 若拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑)
数据截至 2026/9/20(元数据每日更新 · 实装验证按队列轮转,单条结论的验证时间见上方)
用户评分
还没有人投票,来当第一个
订阅周报,不错过优质插件更新
每周一封 · 高评分插件 + 新用户活动
README
dsh-lsp-packs 独立安装说明 每个 dsh-lsp-/ 都是可独立安装的 DSH 插件包,依赖通过 npm registry 获取,不要求用户预先检出相邻的 dsh-src。本仓库的 pnpm-workspace.yaml 仅用于本地一次性构建和测试全部 12 个语言包。 本地开发/验证可直接执行 pnpm install && pnpm build;语言 server 二进制仍需按各包 README 单独安装。 按语言开箱即用的 LSP 语言配置包 插件系列(DeepSeek Harness / DSH)。 装上一个包,该语言就有原生代码导航:lsp 工具(goToDefinition / findReferences / goToImplementation / hover)无需自行实现任何 LSP 协议。每个语言一个 Cordis 配置插件,复用官方通用底座 @deepseek-ai/dsh-lsp-stdio + @deepseek-ai/dsh-tool-lsp,共 12 个语言包,底座零改动、零重复。 开箱即用、按语言划分的 LSP 配置包,用于 DeepSeek Harness:每种语言一个 Cordis 插件,全部复用同一个共享底座(@deepseek-ai/dsh-lsp 接缝 + @deepseek-ai/dsh-lsp-stdio stdio 宿主 + @deepseek-ai/dsh-tool-lsp 模型工具)。 语言包一览(12 个) | 语言包 | 默认 server | extensionToLanguage | |---|---|---| | dsh-lsp-pyright | pyright-langserver --stdio | .py / .pyi → python | | dsh-lsp-rust | rust-analyzer | .rs → rust | | dsh-lsp-go | gopls | .go → go | | dsh-lsp-cpp | clangd | .c/.h → c;.cpp/.hpp/.cc → cpp | | dsh-lsp-java | jdtls | .java → java | | dsh-lsp-ts | typescript-language-server --stdio | .ts→typescript、.tsx→typescriptreact、.js→javascript、.jsx→javascriptreact | | dsh-lsp-ruby | ruby-lsp --stdio | .rb → ruby | | dsh-lsp-php | intelephense --stdio(可切 phpactor) | .php → php | | dsh-lsp-lua | lua-language-server --stdio | .lua → lua | | dsh-lsp-kotlin | kotlin-language-server | .kt / .kts → kotlin | | dsh-lsp-swift | sourcekit-lsp | .swift → swift | | dsh-lsp-csharp | omnisharp --stdio(可切 Roslyn/dotnet 方案) | .cs → csharp | 每个包目录(如 dsh-lsp-pyright/)自包含: dsh-lsp-/ ├── cordis.yml # dsh.bundle patch:注册本插件行(dsh plugin add 时自动装配) ├── package.json # @dsh-lsp-packs/dsh-lsp-;声明 dsh.bundle.patch ├── src/index.ts # Cordis 插件:name / inject / Config / apply ├── README.md # 安装 server(按语言)、支持扩展表、用法与示例 ├── tests/smoke.e2e.ts # 冒烟:离线(默认值+fallback)+ 真实 server 4 操作 └── LICENSE # MIT 快速开始 1. 装配共享底座(一次,host 层) ctx.lsp 服务、lsp 工具、以及同一执行世界的 fs/subprocess 由部署方装配一次,所有语言包共用。就绪片段见 examples/base-composition.cordis.yml: - insert: - id: lsp-service name: '@deepseek-ai/dsh-lsp' - id: tool-lsp name: '@deepseek-ai/dsh-tool-lsp' fs / subprocess 若部署已有则保留现有行,缺谁补谁 2. 装语言包 dsh plugin add @dsh-lsp-packs/dsh-lsp-pyright # 发布后的包名 或本地路径: dsh plugin add /path/to/dsh-lsp-packs/dsh-lsp-pyright 包的 cordis.yml 即其 dsh.bundle.patch,安装后自动把插件行插入组合;apply() 内部为 ctx.lsp 装配一个配好该语言默认值的 dsh-lsp-stdio 实例。 3. 安装语言 server(前置条件) 插件不下载/不安装 server 二进制(与上游 anthropics LSP 插件一致,见各包 README 的安装指引,pyright 支持 npm / pip / pipx 三种方式)。server 未安装时,插件仍可加载:查询返回结构化 LSP_UNAVAILABLE 错误(包含缺失命令与原因),会话不崩溃、其余工具不受影响。 设计要点 - 配置层而不是协议层:包只声明 servers 表(command / args / extensionToLanguage / 边界参数),协议与进程编排全部交给 @deepseek-ai/dsh-lsp-stdio,模型侧工具由 @deepseek-ai/dsh-tool-lsp 提供——12 个包对底座零改动(验收标准 3)。 - 懒启动:加载时不拉起 server,首次匹配查询才 spawn(与上游行为一致)。 - Config 覆盖:Config 允许覆盖 command / args / env / extensionToLanguage 等全部字段(默认与 README 一致),便于用户本机路径不同的场景。 - No-server fallback:加载期解析可执行文件失败时,注册占位 provider,查询统一抛 LSP_UNAVAILABLE,保证“未装 server 时不影响其他工具”。 测试 pnpm verify # 离线结构冒烟:node 直跑,无需 node_modules(脚本内嵌 PROMPT.md 规格表,逐包核对) pnpm test # vitest:每包 3 个 lane 每个 tests/smoke.e2e.ts 三个 lane: 1. pack defaults(离线,总跑)——断言默认 command / args / 扩展表 / provider id 与 README 一致; 2. missing server(离线,总跑)——用不可解析的 command 加载,验证查询返回 LSP_UNAVAILABLE、插件不崩溃; 3. real server(需要真 server)——对样例文件跑 lsp 工具 4 个操作,断言跳转/引用结果非空;server 不在 PATH 或不可用时自动跳过(部分 server 需要预构建索引,如 sourcekit-lsp 需 swift build,构建失败时仅跳过依赖索引的操作)。 本机(macOS,2026-08-23)已真实跑通:12/12 测试文件通过(42 passed / 42 skipped), 其中 clangd 4 操作全绿、sourcekit-lsp 定义/hover 通过、全部 12 包离线 lane (默认值 + LSP_UNAVAILABLE fallback)通过;tsc 对 24 个 TS 文件 0 错误。 详见 docs/verification.md。 目录结构 dsh-lsp-packs/ ├── PROMPT.md # 制作指令(勿改) ├── README.md # 本文档 ├── package.json / pnpm-workspace.yaml / tsconfig.base.json / vitest.config.ts ├── LICENSE # MIT(根) ├── examples/ │ └── base-composition.cordis.yml # 共享底座装配片段(一次性,host 层) ├── docs/ │ └── verification.md # 本机真实运行验证记录 ├── scripts/ │ ├── generate-packs.mjs # 生成器:12 个包的唯一事实来源(npm run generate) │ └── verify.mjs # 离线结构验证(npm run verify) └── dsh-lsp-/ # 12 个独立语言包(每个可独立发布/安装) 生成与再生成 语言默认值集中在 scripts/generate-packs.mjs 的 PACKS 表;修改后运行 pnpm generate 重新生成 12 个包(生成的文件已提交,生成器只是维护入口)。 License MIT —— 见根 LICENSE 与各包 LICENSE。各语言 server 是第三方二进制,版权归其各自项目。 权限、失败边界与 DSH STORE 状态 - PERMISSIONS.md:运行时读取面 / 命令面(固定 argv,非 shell)/ 写面 / 外部服务 / 失败边界 / 供应链 / 文件权限信号(无 chmod/chown、644、无 setuid/setgid)。 - docs/store-evidence.md:一次性 Profile 安装 → 启动(工具注册清单)→ 卸载步骤、本地离线证据、待宿主补录真实运行记录说明,并逐项回应 DSH STORE 五类审查信号(仓库 canonical 匹配 / Node 声明 / 供应链 / 文件权限 / 命令权限)。 - STORE 复检由 dsh-safe-plugin-manager 每 3 小时自动执行;本仓库已按清单契约声明(package.json 的 repository / engines.node / dsh.compatibility / dsh.permissions)。
同作者(988hj7tczd-oss)的其他插件
扫码进群