Nova Language for VS Code
Full language support for the Nova programming language — a statically-typed language with generics, traits, pattern matching, and three execution backends.
Features
- Syntax Highlighting — Full TextMate grammar for
.nova files
- Diagnostics — Real-time error detection as you type
- Go to Definition — Jump to variable and function declarations
- Hover Information — See types and signatures on hover
- Autocomplete — Keywords, in-scope variables, struct fields, enum variants
- Document Symbols — Outline view of all declarations in a file
Nova at a Glance
trait Describable {
fn describe(self) -> string;
}
struct Cat { name: string, age: int }
impl Describable for Cat {
fn describe(self) -> string { return self.name; }
}
fn show<T: Describable>(item: T) -> string {
return item.describe();
}
let cat = Cat { name: "Whiskers", age: 3 };
print(show<Cat>(cat));
Nova supports static typing with inference, generics with monomorphization, traits with bounded generics, enums, pattern matching, first-class functions, closures, and a module system.
Requirements
This extension requires the nova-lsp binary from the Nova compiler project.
Build from source
git clone https://github.com/berbicanes/NovaCompiler.git
cd NovaCompiler
make lsp
Open VS Code settings and set nova.lspPath to the full path of the nova-lsp binary:
{
"nova.lspPath": "/path/to/NovaCompiler/bin/nova-lsp"
}
Extension Settings
| Setting |
Default |
Description |
nova.lspPath |
nova-lsp |
Path to the nova-lsp binary |
Language Features
| Feature |
Supported |
| Syntax highlighting |
Yes |
| Error diagnostics |
Yes |
| Go to definition |
Yes |
| Hover information |
Yes |
| Autocomplete |
Yes |
| Document symbols |
Yes |
| Bracket matching |
Yes |
| Comment toggling |
Yes |
| Auto-closing pairs |
Yes |
About Nova
Nova is a statically-typed programming language built from scratch in C++17 with:
- Three execution backends (bytecode VM, JIT compiler, LLVM IR)
- Generics with monomorphization
- Traits with bounded generics
- Mark-and-sweep garbage collector
- Step-through debugger
- WASM-powered browser playground
- 196 tests across every compiler stage
Learn more at github.com/berbicanes/NovaCompiler.