Iron LSP
Real-time language intelligence for .iron files in VSCode, Neovim, and Zed. Diagnostics that match the compiler exactly — never a divergence between what your editor flags and what ironc produces.
What you get
ironc check, byte-identical..iron file in the project.ironc fmt.Editor extensions
The Iron installer tarball ships iron and ironc only — ironls is distributed separately as an ironls-v<version> tarball on each release. The Zed extension downloads and verifies it automatically; VSCode and Neovim users point their config at a built or downloaded ironls binary (see Configuration below).
VSCode
Search "Iron LSP" in the Marketplace (coming soon) — until the publish lands, package the extension from editors/vscode (npm run package) and install the resulting .vsix.
Neovim
Built-in LSP client + the Iron filetype plugin. Drop the snippet from the Neovim README into your config.
Neovim setupZed
Search "Iron LSP" in the Zed extensions panel. The extension downloads ironls from the matching release and verifies its SHA-256.
Configuration
ironls binaryironls locally and want your editor to use it instead of the downloaded release binary, set the path override:
- VSCode:
"iron.languageServer.path"insettings.json - Neovim: pass
cmd = { "/path/to/ironls" }when callingvim.lsp.start - Zed:
"lsp": { "iron-lsp": { "binary": { "path": "/path/to/ironls" } } }
ironls version range. If your binary falls outside the range, the extension refuses to spawn it and shows a notification — your project never silently runs against an incompatible server.iron_lsp_log_level to debug for verbose output. Each editor exposes the LSP stderr stream through its standard logs panel — use it when diagnosing startup or version-mismatch issues.The parity guarantee
Iron's LSP isn't a parallel implementation of the language — it links the compiler frontend (iron_compiler) directly as a static library. Every diagnostic span, every error code, every type lookup comes from the same code path that ironc uses. That is the core promise: what your editor flags, the compiler flags. CI runs a byte-identical comparison on every commit to ensure they never drift.