Volan Language Server

Prisma-style language tooling for Volan schema files in VS Code.
Volan brings schema-first ORM development to the JVM. This extension gives *.volan files a real language server powered by Volan's parser, semantic analyzer and formatter.
Features
- IntelliSense for models, enums, fields, types and attributes;
- context-aware completion for
@default, enum values, relations and native database types;
- type-aware default values:
now(), uuid(), autoincrement(), literals and list defaults;
- syntax and semantic diagnostics with actionable error messages;
- hover documentation for declarations, types and attributes;
- go to definition and document symbols;
- semantic highlighting;
- document and range formatting;
- a bundled local language server — no network service is required at runtime.
Quick start
- Install the extension from the Marketplace.
- Open a
schema.volan file.
- Start typing a Volan schema and use
Ctrl+Space for completion.
Example:
enum Role {
USER
ADMIN
}
model User {
id Int @id @default(autoincrement())
balance Double @default(0.5)
role Role @default(USER)
createdAt DateTime @default(now())
}
Requirements
- VS Code 1.90 or newer;
- JRE 17 or newer for the bundled language server.
Settings
volan.server.path — optional path to a custom language-server JAR or executable;
volan.java.path — optional path to java/java.exe;
volan.server.jvmArgs — JVM arguments for the bundled server;
volan.trace.server — LSP tracing level for troubleshooting.
Status
This extension is currently in Preview while Volan approaches its 1.0 release. Feedback and bug reports are welcome.
Development
npm install
npm run test:lsp
npm run package
The resulting volan-language-server-0.1.3.vsix can be installed through Extensions: Install from VSIX....
License
MIT. See LICENSE.
Русская версия
Расширение добавляет полноценную поддержку файлов *.volan в VS Code: подсказки, диагностику, hover, переход к определениям, semantic highlighting и форматирование. Автодополнение учитывает тип поля и контекст — в том числе enum-значения и аргументы @default(...).