Skip to content

Editor integrations (LSP & grammar)

Vox ships three editor-facing artifacts in-tree:

ArtifactLocationRole
Language servercrates/vox-lspstdio JSON-RPC server (vox lsp): diagnostics, completions, hover, semantic tokens, symbols, code lenses, structured quick-fixes.
VS Code extensionapps/editor/vox-vscodeReference integration for VS Code / Cursor / forks that load VSIX-shaped extensions.
Tree-sitter grammartree-sitter-voxSyntax highlighting / incremental parsing for editors that consume Tree-sitter queries.

Capability inventory (research): vox-lsp-capabilities-ssot-2026.md.

  1. Build or install the vox CLI (see reference/cli.md).
  2. Load / package the extension under apps/editor/vox-vscode (workspace-specific instructions live in that folder’s README / contribution docs).
  3. Point vox.lsp.command (or equivalent contributed setting) at vox lsp or cargo run -p vox-lsp during bring-up.

Minimal pattern — spawn the same binary CI uses:

-- Example: adjust to your `vox` install path.
vim.lsp.start({
name = 'vox',
cmd = { 'vox', 'lsp' },
root_dir = vim.fs.dirname(vim.fs.find({ 'Vox.toml', 'Cargo.toml', '.git' }, { upward = true })[1]),
})

Use Tree-sitter queries from tree-sitter-vox/queries/ with nvim-treesitter if you want highlighting parity with VS Code.

Add a language-server block in languages.toml:

[[language]]
name = "vox"
scope = "source.vox"
file-types = ["vox"]
roots = ["Vox.toml", "Cargo.toml"]
language-servers = [ "vox-lsp" ]
[language-server.vox-lsp]
command = "vox"
args = ["lsp"]

Helix does not ship a Vox grammar — pair with tree-sitter-vox build steps from that crate’s README when you need injections.

Zed extensions are Wasm-hosted; there is no first-party Zed extension in this repo yet. Practical options:

  • Use external file-type / grammar hooks if your Zed build supports custom Tree-sitter grammars, pointing at tree-sitter-vox.
  • Track LSP via a future extension that shells out to vox lsp (same command line as other editors).

JetBrains (IntelliJ / RustRover / plugin SDK)

Section titled “JetBrains (IntelliJ / RustRover / plugin SDK)”

No JetBrains plugin sources ship here. Recommended interim:

  • Enable LSP client support (Gateway / third-party LSP plugins) and register vox lsp.
  • Optional: import tree-sitter-vox into a small plugin for lexical highlighting until a full PSI exists.

Use LSP package + a client stanza:

{
"clients": {
"vox": {
"enabled": true,
"command": ["vox", "lsp"],
"selector": "source.vox"
}
}
}

Define the .vox syntax via .sublime-syntax generated from Tree-sitter or hand-maintained scopes — Tree-sitter bridge packages can consume tree-sitter-vox.

  • Diagnostics differ from vox check — LSP uses validate_document / validate_document_with_hir; confirm parity notes in vox-lsp-capabilities-ssot-2026.md.
  • No document formatting in LSP — formatting remains vox fmt / CLI (document/formatting is intentionally not advertised today).