Skip to content

Vox LSP capabilities matrix (research)

Naming: File suffix ssot reflects the original plan slug; this page is not B-canon until registered in contracts/documentation/canonical-map.v1.yaml. Use as the working matrix.

See also: Vox compiler architecture (research), language-lsp-parity-findings-2026.md, web-app-archetype-coverage-2026.md.

crates/vox-lsp implements a stdio JSON-RPC language server using the compiler’s lexparsetypecheck_ast_module path (and optional HIR validation). Shared helpers convert typechecker diagnostics to LSP Diagnostic values (severity, code string, structured data for suggestions/fixes).

CapabilityStatusImplementation notes
Publish diagnosticsImplementedDriven off compiler pipeline; severity mapped from TypeckSeverity.
Diagnostic codeImplementedPass-through of typechecker codes where present.
Related fixes in dataImplementedJSON payload with suggestions and editable replacement ranges.
CompletionsPartialcompletions module; parity with CLI/vox check not guaranteed without periodic audits.
HoverPartial / surface-dependentSee Speech reference and archetype coverage gaps for stubbed areas.
Go to definitionVariablesymbols module; cross-file and codegen symbols need explicit tests.
Code actionsLimitedFix payloads exist in diagnostics; full code-action lifecycle may be incomplete vs spec.
FormattingNot advertisedinitialize omits documentFormattingProvider; use CLI vox fmt. Future LSP formatting must add capability + handler together — see language-formatter-semantics-findings-2026.md.
Workspace symbolsUnknown / TBDConfirm in main.rs / capability negotiation.
  • Single source of diagnostic truth: Prefer emitting diagnostics once in vox-compiler and rendering in LSP rather than reimplementing checks in the server.
  • Parity checks: When adding a vox check diagnostic, add or extend an integration test that exercises the LSP path where feasible.

Automated exercises live in crates/vox-integration-tests/tests/lsp_capabilities_test.rs — asserts advertised capabilities vs absent document formatting, plus semantic tokens, completions, hover, symbols, code lenses, and quick-fix extraction.

  1. Generate a machine-readable capability table from initialize response + handler registry (or document manually until automated).
  2. Align with Phase 1 SSOT collapse for completion sources (vox-language-rules-phase1-ssot-collapse-2026.md).
  3. Close archetype-blocked items calling out LSP stubs in web-app-archetype-coverage-2026.md.