IDE Setup
Milo includes an LSP server with diagnostics, hover, go-to-definition, and formatting. It is a subcommand of the compiler — milo lsp — so there is no separate daemon to install.
VS Code
Install Milo Language from the Marketplace (or from Open VSX in Cursor, VSCodium, Windsurf).
The extension launches milo lsp, so install the compiler first. It looks for milo in ~/.local/bin, ~/.milo/bin, Homebrew, /usr/local/bin, then PATH. If yours lives somewhere else:
// settings.json
"milo.path": "/path/to/milo"What you get
- Diagnostics — type errors, move violations, and syntax errors as you type
- Hover — type information on any expression
- Go-to-definition — jump to function/struct/enum definitions, including into the standard library
- Format on save — runs the same formatter as
milo fmt, so the editor and the CLI can't disagree - Syntax highlighting — via the bundled TextMate grammar
Other editors
Point any LSP client at:
milo lspWorking on the compiler
From a checkout, build and load the extension locally:
cd editors/vscode && bun install && bun run build
bun run package && code --install-extension milo-lang-*.vsixWith no milo on your PATH the extension falls back to running the checkout's compiler through bun, which is what makes F5 (Extension Development Host) pick up uncommitted compiler changes. To point it at a specific checkout, set milo.compilerRoot to the directory containing src/main.ts.