Editor support

avedon ships a language server and VS Code / Cursor extension for .ave files.

Install

Marketplace / Open VSX (when published)

Search for Avedon (avedonjs.avedon-vscode) in the VS Code Marketplace or Open VSX.

Publishing is driven by .github/workflows/publish-vscode.yml when the repo secrets VSCE_PAT and OVSX_PAT are set. Until those secrets exist, use a VSIX from CI (below).

CI VSIX / local package

Every green Build job uploads an avedon-vscode artifact. Or from the monorepo:

pnpm -F @avedon/compiler build
pnpm -F @avedon/language-server build
pnpm -F avedon-vscode package
cursor --install-extension packages/vscode-avedon/avedon-vscode-*.vsix

Details: packages/vscode-avedon/README.md.

Standalone language server

npx avedon-language-server
# or: npm i -D @avedon/language-server

Features

Feature Status
Diagnostics (diagnoseAve) Shipped
Completion / hover / go-to-definition Shipped
Script symbol index Shipped
Find references + rename (in-file) Shipped (v4)
Cross-file refs/rename (export let props + component imports) Shipped (v5)
Workspace symbols (export let + components) Shipped (v5)
Embedded TypeScript LS in <script> / <script server> Shipped (v6) — diagnostics / hover / definition / completion
Source maps for emitted JS Deferred (v6.1)

Typing story

The Vite plugin generates *.ave.d.ts next to components. Keep export let props and load return shapes aligned with those types — see Configuration.

Inside <script> / <script server>, the language server also runs an embedded TypeScript language service (v6) so type errors, hover, go-to-definition, and completion apply to the script body itself.