README来源: main@82adcda9
dsh-easy-lsp
Language-server (LSP) manager for DeepSeek Harness: a self-contained LSP engine, a one-click installer, and proactive diagnostic injection, all managed from a visual LSP Servers page.
English | 中文

Features
- Code intelligence:
lsptool — goToDefinition / findReferences / goToImplementation / hover. - On-demand diagnostics:
lsp_diagnosticstool checks a file's compile/type errors (requires a server that pushes diagnostics, e.g. pyright). - Symbols:
lsp_symbolstool — document symbol listing (not available in the official LSP tooling). - Semantic rename:
lsp_renametool — renames a symbol across the whole project (cross-file references and overloads included); returns a per-file edit list with original-text anchors that you apply yourself. - Code actions:
lsp_code_actionstool — lists the server's standard fixes (auto-import, fix type errors, quick refactors) with their edits; command-only actions are marked not executable. - Formatting:
lsp_formattool — formats a file per the server's project rules; whole-file replacements are returned for you to rewrite with the write tool. - Call hierarchy:
lsp_callerstool — semantic callers/callees of a symbol with exact call sites (depth 1). - Proactive diagnostics: after the agent writes/edits code, unresolved errors are injected into the next system prompt automatically; half-finished-code noise is filtered by a stability threshold.
- Visual management: Settings → LSP Servers — add / edit / enable / delete / test (test result shows the server's supported capabilities).
- One-click installer: 37 presets (30 auto + 7 guides) covering mainstream languages; installs to user-level directories, no sudo.
- Self-contained engine: no dependency on the official
dsh-lsp/dsh-lsp-stdio/dsh-tool-lsp.
Installation
dsh plugin --profile web add dsh-easy-lsp # install
dsh plugin --profile web remove dsh-easy-lsp # uninstall
Restart dsh web, then: Settings → LSP Servers → add a language server (e.g. TypeScript / Python) → one-click install or copy the command → save and enable.
Conflict note: the
lsptool name collides with the officialdsh-tool-lsp— use one or the other.
Configuration
Servers are stored in the lsp section of ~/.dsh/settings.yaml and managed in the UI (manual edits are hot-synced too):
lsp:
servers:
typescript:
enabled: true
command: typescript-language-server
args: ['--stdio']
extensionToLanguage: { '.ts': 'typescript', '.tsx': 'typescript' }
diagnostics:
autoRun: true
inject: true
stabilityRounds: 2
Notes
- typescript-language-server does not push transient diagnostics; pyright-style servers do. Code actions for such servers are collected without a diagnostics context and may be limited.
- typescript-language-server has no call hierarchy provider; pyright has no document-formatting provider — unsupported operations fail fast with a clear message.
- Rename / format / code actions / call hierarchy return edit lists or information only; the agent applies edits with the existing write/edit tools (no direct file writes).
- One extension maps to the first enabled server (conflict hinted in the UI).
- Proactive-injection cache is global per file; sessions share diagnostic state.
- Out of scope: completion, signatureHelp, inlayHint, semanticTokens, workspace/symbol, typeHierarchy, and code-graph features (use an MCP server for those).
License
MIT
还没有评论,来写第一条。