code-yeongyu / code-yeongyu/pi-lsp-client
`/lsp warmup` rejects custom servers from `.pi/lsp-client.json`
- Dominant language
- TypeScript
- Stars
- 16
- Forks
- 5
- PR merge metrics
- No merged PRs in 30d
Description
**Describe the bug:** `/lsp warmup ` only accepts ids from `BUILTIN_SERVERS` in `server-definitions.ts`. Servers configured via `.pi/lsp-client.json` (the documented way to add custom servers) are resolved fine by the LSP tools, but warmup responds with `Unknown server id ''.`
**To reproduce:**
1. Add a custom server to `~/.pi/lsp-client.json` (or project `.pi/lsp-client.json`), e.g. `{"lsp": {"raku": {"command": ["/path/to/raku-language-server"], "extensions": [".raku"]}}}`
2. Run `/lsp warmup raku`
3. Observe: `Error: Unknown server id 'raku'.`
**Expected:** custom config servers can be warmed up like builtins (`/lsp status` already lists them via `getAllServers()`).
**Suggested fix:** in `runWarmup()` (`src/index.ts`), fall back to `getMergedServers()` when the id is not in `BUILTIN_SERVERS` — I have a working patch implementing exactly this.
Contributor guide
No contributing guide indexed for this repository
Research direction
Start in src/index.ts at runWarmup(), then trace how BUILTIN_SERVERS and getMergedServers() resolve server IDs. Reproduce with a custom entry in .pi/lsp-client.json and verify that /lsp warmup accepts it while preserving builtin behavior and the existing /lsp status listing.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli, tooling
- Issue type
- Bug
- Difficulty
- 2/5
- Estimated time
- 1-3 hours
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 76/100