Skip to content

Commit 9878ca5

Browse files
committed
docs(readme): single-wrapper install guide covering LSP + opt-in wrappers
Addresses the "I only want Java" / "I only want sbt" / "I only want prettier" user path. The existing Quickstart implied all-or-nothing; clarifies that install.sh is idempotent-by-design and costs nothing to run even for a single-wrapper deployment. Adds a table listing the backend install command per wrapper (all 11 wrappers — LSP + opt-in build tools + opt-in formatters) plus a note that unused wrappers no-op cleanly when their backing binary is absent, and verify.sh's SKIP lines for missing languages are expected not failures.
1 parent b7c6e4c commit 9878ca5

1 file changed

Lines changed: 32 additions & 0 deletions

File tree

README.md

Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -146,6 +146,38 @@ cd ~/projects/claude-lsp-direct
146146
Install only the language server(s) you need (see per-language docs
147147
for version pinning).
148148

149+
### Single-wrapper install (e.g. only Java, only sbt, only prettier)
150+
151+
You still run `./scripts/install.sh` — it's idempotent, only symlinks
152+
files, costs nothing extra, and keeps updates consistent across all
153+
wrappers. Then install only the backend(s) your wrapper needs:
154+
155+
| wrapper | install the backend |
156+
|---|---|
157+
| `py-direct` | `npm i -g pyright` |
158+
| `ts-direct` | `npm i -g typescript-language-server typescript` |
159+
| `cs-direct` | `dotnet tool install -g csharp-ls` |
160+
| `vue-direct` | `npm i -g @vue/language-server@3.2.6 @vue/typescript-plugin@3.2.6 typescript@5.9.3` |
161+
| `java-direct` | `brew install jdtls` (macOS) — any JDK 17+ |
162+
| `metals-direct` | `brew install metals` |
163+
| `sbt-direct` | `brew install sbt` (or sdkman) |
164+
| `dotnet-direct` | .NET SDK already present if you use csharp |
165+
| `prettier-direct` | `npm i -g prettier` (or workspace-local `pnpm add -D prettier`) |
166+
| `eslint-direct` | `npm i -g eslint` (or workspace-local) |
167+
| `scalafmt-direct` | native binary via `curl -L https://github.com/scalameta/scalafmt/releases/latest/download/scalafmt-aarch64-apple-darwin.zip` — see [scalafmt docs](docs/per-language/scalafmt.md) |
168+
169+
Then call only the wrapper you want:
170+
171+
```bash
172+
java-direct call textDocument/documentSymbol \
173+
'{"textDocument":{"uri":"file:///path/to/File.java"}}'
174+
```
175+
176+
Wrappers whose backing binary isn't installed no-op cleanly —
177+
`java-direct` won't interfere with a Python-only workflow and vice
178+
versa. `scripts/verify.sh` reports SKIP for those languages, which is
179+
the intended behavior, not a failure.
180+
149181
```bash
150182
py-direct call textDocument/documentSymbol \
151183
'{"textDocument":{"uri":"file:///path/to/your.py"}}'

0 commit comments

Comments
 (0)