feat(vscode): extension foundation — scaffold, language registration, three stubbed seams #44

Merged
toph merged 12 commits from vscode-extension-foundation into main 2026-07-03 13:07:57 +00:00
Owner

Lays the foundation for a Beloch VSCode extension at editors/vscode/ (bun + esbuild + TypeScript). This is deliberately a shared shell — it ships nothing user-visible beyond language registration; its job is to nail the seams so three subsystems (syntax highlighting, LSP, live preview) can be built in parallel, each in a disjoint file set.

What it ships:

  • Scaffold + build pipeline, activate/deactivate delegating to registerLsp / registerPreview.
  • Language registration: id beloch, .bel, line comment ;. -- is deliberately not a comment (it's the crease sigil).
  • resolveBeloch() — single binary-discovery choke point: setting beloch.pathbeloch on PATH → dev fallback dune exec beloch --. Unit-tested (4/4).
  • Three pre-stamped seams: grammar (syntaxes/beloch.tmLanguage.json, empty patterns), LSP client bootstrap spawning beloch lsp (tolerates the stub server exiting nonzero — no crash, no error dialog), preview webview stub with command beloch.showPreview.

package.json declares all contribution slots up front and is frozen after this — that's the anti-collision design: later subsystem agents touch only their own files. See editors/vscode/README.md for the ownership contract.

bunx tsc --noEmit clean, bun test 4/4, bun run compile green. The OCaml core is untouched.

Groundwork for the live preview relates to #42 (per-step folded frames for interpolation) and #31 (exact per-face isometries). Built task-by-task with per-task and whole-branch review.

Lays the foundation for a Beloch VSCode extension at `editors/vscode/` (bun + esbuild + TypeScript). This is deliberately a shared shell — it ships nothing user-visible beyond language registration; its job is to nail the seams so three subsystems (syntax highlighting, LSP, live preview) can be built in parallel, each in a disjoint file set. What it ships: - Scaffold + build pipeline, `activate`/`deactivate` delegating to `registerLsp` / `registerPreview`. - Language registration: id `beloch`, `.bel`, line comment `;`. `--` is deliberately not a comment (it's the crease sigil). - `resolveBeloch()` — single binary-discovery choke point: setting `beloch.path` → `beloch` on `PATH` → dev fallback `dune exec beloch --`. Unit-tested (4/4). - Three pre-stamped seams: grammar (`syntaxes/beloch.tmLanguage.json`, empty `patterns`), LSP client bootstrap spawning `beloch lsp` (tolerates the stub server exiting nonzero — no crash, no error dialog), preview webview stub with command `beloch.showPreview`. `package.json` declares all contribution slots up front and is frozen after this — that's the anti-collision design: later subsystem agents touch only their own files. See `editors/vscode/README.md` for the ownership contract. `bunx tsc --noEmit` clean, `bun test` 4/4, `bun run compile` green. The OCaml core is untouched. Groundwork for the live preview relates to #42 (per-step folded frames for interpolation) and #31 (exact per-face isometries). Built task-by-task with per-task and whole-branch review.
toph added 12 commits 2026-07-03 10:49:59 +00:00
toph merged commit 57d3937735 into main 2026-07-03 13:07:57 +00:00
toph deleted branch vscode-extension-foundation 2026-07-03 13:07:57 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
toph/beloch!44
No description provided.