CAVE for VSCode
Language support for CAVE (.cave files).
Highlighting is a semantic-tokens provider running the
@cavelang/tree-sitter-cave grammar (WASM, via web-tree-sitter) with the
grammar's own queries/highlights.scm — the exact query Neovim/Helix/Zed
and the cave highlight terminal command use. One grammar, every surface;
there is deliberately no TextMate grammar to drift out of sync.
Also contributes ; line comments, "/` auto-closing pairs, and the
cave language id.
Build and install
pnpm install
pnpm package # → cave-language-<version>.vsix
code --install-extension cave-language-*.vsix
For development: pnpm build, then F5 (Run Extension) from this directory.
Version and release policy
The extension is a released Marketplace product under publisher MirekRusin.
Its version follows the repository's lockstep CAVE version: the automated
version-packages PR updates this private manifest after Changesets has updated
the public packages. Never edit the version by hand. Every repository release
publishes the extension to Marketplace (listed as CAVE Language, id
MirekRusin.cave-language) from the vscode job of
.github/workflows/publish.yml, which runs after the npm publish.
Extension-facing changes use the same PR changeset as the rest of the
repository. Those changesets and the linked v<version> Git history are the
release log; there is deliberately no second extension changelog to maintain
or reconcile.
Both publication paths use the vscode-marketplace GitHub environment, which
holds a VSCE_PAT secret authorized only for the MirekRusin publisher plus
any desired reviewer protection. To republish an older release manually,
dispatch Publish VS Code extension (.github/workflows/vscode.yml) from
the default branch and enter the version without the v. Either path checks
out the exact tagged release, validates its release identity and lockstep
manifest, builds and inspects the VSIX, then publishes it. Duplicate versions
are treated as a successful no-op so a failed workflow can be rerun.
The VSCE_PAT is an Azure DevOps personal access token created at
https://dev.azure.com/<org>/_usersSettings/tokens with organization scope
All accessible organizations and the single scope Marketplace → Manage.
Azure DevOps retires all-organization tokens on 1 December 2026; set the
expiry no later than that date and migrate the workflow to the Entra-based
authentication vsce supports (--azure-credential) before then.