Editor setup
VS Code, Cursor, and Zed.
One Volar-based language server powers every editor. Your project needs @edge-language-tools/language-server as a devDependency (so its binary lands in node_modules/.bin) and typescript installed.
Build and install the extension from packages/vscode:
cd packages/vscode
npm run build
npx @vscode/vsce package --no-dependencies -o edge-language-tools.vsixcd packages/vscode
bun run build
bunx @vscode/vsce package --no-dependencies -o edge-language-tools.vsixThen Extensions panel → Install from VSIX. Cursor loads VS Code extensions unchanged. The official AdonisJS Edge extension can stay installed — it provides highlighting; this provides the semantics.
Install as a dev extension: Extensions (cmd-shift-x) → Install Dev Extension → pick packages/zed. Requires a Rust toolchain (rustup with the wasm32-wasip2 target) for Zed’s local build step.
Server resolution order:
lsp.edge-language-server.binary.pathin Zed settings (project.zed/settings.jsonworks)edge-language-serveron the shell PATH<worktree>/node_modules/.bin/edge-language-server
What you get in the editor
- Diagnostics on exact template offsets, live as you type
- Prop-name completions inside
@component(...)/ shorthand-tag props objects - Template-path completions inside
@include(',@includeIf(', and@component(' - Tag completions on
@: all built-in tags (each with a one-line doc) plus your components as supercharged shorthand tags (@toolTip,@checkoutForm.input), with the component’s doc header (@name,@desc,@types) shown in the popup - Hover on any tag: built-ins explain what they do; component tags and
@include/@componentpath strings show the target template’s doc header - Go-to-definition on a component tag or template path string jumps to the
.edgefile - Hover types for any expression