A thin client for the Nucleus toolchain. It contains zero business logic: all diagnostics, hover, and completion come from the Rust language server.
Status (Phases 4 & 6 — complete)
LSP client (Phase 4)
- Activates on
workspaceContains:**/stm32.toml. - Spawns
nucleus lsp(path configurable vianucleus.serverPath) and connectsvscode-languageclientover stdio against**/stm32.toml. - Surfaces the server's diagnostics (red squiggles on pin conflicts), pin hover, and pin-name completion in the editor.
Trace dashboard (Phase 6)
- The Nucleus: Open Trace Dashboard command (
nucleus.openDashboard) hosts the React/Canvas dashboard (src/dashboard/) in a webview: log stream, live variable charts, and a CPU-load strip, fed by thenucleus traceWebSocket (nucleus.traceWebSocket, defaultws://localhost:7878). - The same bundle runs standalone in a browser (
dist/index.html).
Build
npm install
npm run build # esbuild bundle -> dist/extension.js
npm run typecheck # tsc --noEmit
The extension is not built by the Rust CI gate (
make check); it requiresnpm install. The Rust language server it talks to is fully tested in CI.
Requires the nucleus CLI on PATH (or set nucleus.serverPath).