Cael Language Support
Syntax highlighting, LSP, snippets, and build tools for the Cael programming language.

What is Cael?
Cael is a statically typed systems language that compiles to C99. It is designed to be readable, predictable, and zero-overhead.
The goal is to give order to C. You write Cael; you get C. The abstractions it adds are ones you would have written by hand anyway:
- Namespaces — organise symbols without polluting the global scope
- Imports — single-line file inclusion, no header duplication
- Methods — functions bound to structs via
extend blocks
- Reference safety — pass-by-reference is explicit with
ref; no implicit pointer arithmetic
If you've been writing C and wishing it had structure without a new runtime, Cael is that language.
Features
Syntax Highlighting
Covers the full Cael syntax — keywords (let, mut, fun, struct, enum, extend, namespace), all primitive types (i8–i64, u8–u64, f32, f64, bool, char, str, void, never), namespace access (math::PI), C FFI blocks (include / extern fun), literals, SCREAMING_SNAKE_CASE constants, and line and block comments.
Diagnostics
The built-in language server checks your code as you type — no external install needed. It enforces Cael's naming conventions at edit time:
- Structs and enums must be
PascalCase
- Functions and methods must be
camelCase
- Constants must be
SCREAMING_SNAKE_CASE
- Namespaces and variables must be
snake_case
It also catches unbalanced braces and parentheses before you reach the compiler.
Hover Documentation
Hover over any symbol to see its documentation inline. This works for built-in keywords, all primitive types, special methods (__add__, __drop__, __iter__, etc.), and any struct, enum, function, or variable defined in your workspace.
Auto-complete
The LSP provides completions for keywords, primitive types, special method names, and every symbol declared in the current file.
Go to Definition
F12 on any struct, enum, function, or variable declaration jumps straight to where it is defined. Works across files in the same workspace.
Snippets
Snippets are included for all common Cael patterns
Build & Run
Compile and run without leaving VS Code.
| Action |
Shortcut |
| Build |
Ctrl+Shift+B |
| Build and Run |
F5 |
| Run (last build) |
Cael: Run File via Command Palette |
Output appears in the dedicated Cael output panel. The compiled binary runs in the integrated terminal so you can interact with stdin/stdout.
Extension Settings
| Setting |
Default |
Description |
cael.compiler |
"caelc" |
Path to the caelc compiler binary |
cael.outputDir |
"./build" |
Directory for compiled output |
cael.compilerArgs |
[] |
Extra flags passed to caelc |
cael.lsp.enable |
true |
Enable the built-in language server |
cael.lsp.trace |
"off" |
LSP trace level — off, messages, or verbose |
Contributing
Issues and pull requests are welcome on GitHub.
License
MIT