Skip to content
edge-language-tools
Esc
navigateopen⌘Jpreview
On this page

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.vsix
cd packages/vscode
bun run build
bunx @vscode/vsce package --no-dependencies -o edge-language-tools.vsix

Then 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:

  1. lsp.edge-language-server.binary.path in Zed settings (project .zed/settings.json works)
  2. edge-language-server on the shell PATH
  3. <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/@component path strings show the target template’s doc header
  • Go-to-definition on a component tag or template path string jumps to the .edge file
  • Hover types for any expression

Was this page helpful?