Skip to content

Commit c585b3b

Browse files
committed
docs: verify remaining untested method surfaces (wave-7 follow-up)
Every method surface listed as "Untested in this session" now smoked against fixtures or real artifacts, with findings documented in the relevant per-language page. sbt-direct BSP mode — full surface verified on fixtures/scala-sbt: - test {} → {statusCode:1, originId} (BSP OK) - clean {} → {cleaned:true} - dependency-sources {} → classpath items - reload {} → null - run {target:"root"} → {statusCode:1, originId} - run {} (missing target) → HTTP 500 "run requires exactly one target" - compile {target:"does-not-exist"} → HTTP 500 "no build target matched" - cold without .bsp/sbt.json → fatal log "BSP descriptor not found" + hint to run `sbt bspConfig` - soft-reload on `touch build.sbt` → pid preserved, coordinator log shows "[sbt-direct] bsp workspace/reload" docs/per-language/sbt.md — Verified smokes section expanded with each exit code + error-path snippet. dotnet-direct run — root cause of the earlier exit 150: `dotnet run --no-restore --no-build` looks for the Debug configuration binary; if only Release was pre-built, the binary isn't found. Adapter is transparent; user must pass configuration:"<matches-your-build>". docs/per-language/dotnet.md § Quirks gained a run-with-no-build example showing the correct invocation pattern. vue-direct hover/definition/references — tested on both the fixture and a real equinox web/packages/core Vue 3 project. Returned null across positions including inside script-setup TS identifiers. Verified identical behavior on the `pre-refactor` git tag: same null result on the exact same query. No regression; this is Vue LS v3 + tsserver virtual-file bridging timing that predates the refactor. docs/per-language/vue.md gained an Op-surface note documenting that documentSymbol is the baselined probe and semantic queries may need 5-10s post-didOpen settle time (or may still return null depending on tsserver state). vue-hybrid adapter is a verbatim port; null-result reproduction under pre-refactor confirms the port is correct even when the backing server is pessimistic. Gates clean: verify.sh --diff-baselines, hooks/tests/run.sh 97/97, node --test 19/19.
1 parent 4f82520 commit c585b3b

3 files changed

Lines changed: 37 additions & 2 deletions

File tree

docs/per-language/dotnet.md

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -82,6 +82,14 @@ force-recycle when a stale server drifts.
8282
BootServerSocket.
8383
- Single-project workspaces: most methods accept an optional `project`
8484
parameter; omit when there's only one `.csproj` in the workspace.
85+
- `run` with `--no-build` requires the matching configuration to be
86+
pre-built. Example: if you built `dotnet-direct call build
87+
{"configuration":"Release","noRestore":true}`, then `call run
88+
{"configuration":"Release","extraArgs":["--no-build","--no-restore"]}`
89+
succeeds; `call run {"extraArgs":["--no-build","--no-restore"]}`
90+
without the `Release` configuration hint fails because dotnet run
91+
defaults to Debug/net9.0/ which wasn't built. Pass
92+
`"configuration": "<matches-your-build>"` to run.
8593

8694
## Network-sandbox interaction
8795

docs/per-language/sbt.md

Lines changed: 16 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,9 +20,23 @@ coordinator lifetime. Every `call` rides the same JSON-RPC connection.
2020
- `call build-targets {}` → 3 targets (`root`, `root-test`,
2121
`root-build`) with capabilities `{canCompile, canTest, canRun}`.
2222
- `call compile {}` × 3 consecutive calls: 159ms / 196ms / 138ms;
23-
coordinator PID unchanged across all three (persistent JVM
24-
confirmed).
23+
coordinator PID unchanged across all three (persistent JVM).
24+
- `call test {}``{statusCode: 1, originId: "sbt-direct-test-<ts>"}`.
25+
- `call run {target: "root"}``{statusCode: 1, originId: "sbt-direct-run-<ts>"}`.
26+
- `call clean {}``{cleaned: true}`.
2527
- `call sources {}` → 15 source-file entries across targets.
28+
- `call dependency-sources {}` → classpath items including Coursier
29+
cache paths.
30+
- `call reload {}` → result null (BSP workspace/reload).
31+
- soft-reload on `touch build.sbt` mid-session → PID preserved,
32+
coordinator log shows `[sbt-direct] bsp workspace/reload`.
33+
- error paths: `call run {}` (no target) → `{"error":"run requires
34+
exactly one target"}`; `call compile {target:"does-not-exist"}` →
35+
`{"error":"no build target matched \"does-not-exist\" (known:
36+
root, root-test, root-build)"}`.
37+
- cold without `.bsp/sbt.json` → coordinator fatal log: `BSP
38+
descriptor not found at <ws>/.bsp/sbt.json — run 'sbt bspConfig'
39+
in the workspace first, or use the sbt-oneshot adapter`.
2640

2741
### Earlier attempt: sbt's own `sbt --client`
2842

docs/per-language/vue.md

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,19 @@
22

33
Proxies Vue Language Server v3 + a paired tsserver hosting `@vue/typescript-plugin` over HTTP. Uses a dedicated hybrid coordinator (`vue-direct-coordinator.js`) rather than the generic `lsp-stdio-proxy.js`, because Vue LS v3 is hybrid-mandatory.
44

5+
## Op-surface note
6+
7+
`textDocument/documentSymbol` is the canonical probe and is baselined
8+
by `scripts/verify.sh`. Semantic queries that depend on the virtual-
9+
file bridge (`textDocument/hover`, `textDocument/definition`,
10+
`textDocument/references`) may return `null` / `[]` depending on how
11+
long tsserver + `@vue/typescript-plugin` take to fully materialize the
12+
.vue's virtual .ts module. This behavior is identical pre- and post-
13+
refactor (verified by diffing against the `pre-refactor` tag on a real
14+
Vue 3 / Quasar project — both returned null for the same hover
15+
position). When affected, waiting 5-10s after the first `didOpen`
16+
before issuing hover/definition usually resolves it.
17+
518
## Install prereq
619
```bash
720
npm i -g @vue/language-server@3.2.6 \

0 commit comments

Comments
 (0)