Editor extensions — oxup extension
The Argon editor integration is installed and kept in sync by the toolchain manager (oxup), not by hand. oxup extension (alias ext) manages it, abstracted over editors (RFD 0032).
oxup extension install [--editor <vscode|cursor|codium|code-insiders|code-server|neovim|vim|emacs>] [--archive <path.vsix>]
oxup extension uninstall [--editor <name>]
oxup extension list
install (no --editor) auto-detects every installed VS Code-family editor (by its CLI on PATH) and installs the extension matching the active toolchain version into each. The version coupling is real: the published .vsix is stamped with the toolchain version and addressed at an immutable CDN path, https://argon.sharpe-dev.com/editors/vscode/<version>/argon-<version>.vsix. oxup resolves the active toolchain’s concrete version (from its manifest.toml), fetches that .vsix, sha256-verifies it against the published sidecar (the same fail-closed discipline as the toolchain fetch), and hands it to the editor CLI’s --install-extension. --archive <path.vsix> installs a local .vsix offline instead of fetching.
oxup init (non-minimal) and oxup update auto-install / refresh the extension after the toolchain is placed; oxup init --no-extension skips it, and update re-installs only when the toolchain version changed (the installed version is recorded in settings.toml). A failed extension install is a soft failure — the toolchain is what matters — and “no editor detected” is a quiet one-line note, not an error.
Editor support matrix
Two install mechanisms, by the contract the editor exposes. The user-facing detail — the language-server capability set, and the file-placement managed-config block — is in Toolchain → Editor support.
| Editor | Install mechanism |
|---|---|
VS Code (code), Cursor (cursor), VSCodium (codium), VS Code Insiders (code-insiders), code-server (code-server) | version-matched .vsix via the editor’s --install-extension CLI |
| Neovim, Vim, Emacs | file placement — embedded plugin files + an idempotent oxup-managed config block |
Neovim, Vim, and Emacs are recognized — naming one with --editor produces a specific, loud refusal pointing at manual setup and the tracking issue, never a silent no-op.