Wick Language — Syntax Support for VS Code
Syntax highlighting, bracket matching, comments, and snippets for
Wick, the small statically-typed
scripting language of the Lantern
retro 3D game engine. Open any .wick file and it just reads.
What it highlights
The grammar is built from the real compiler source (wick/wick_front.cpp,
wick/wick_vm.cpp, src/wick_host.cpp), not from a guess:
- Keywords —
let fn if elif else while for in break continue return and or not record
- Constants —
true false nil
- Types —
num bool str list map void
- Builtins —
len str num push pop floor ceil env abs min max clamp lerp sqrt sin cos atan rand srand check bit_and bit_or bit_xor bit_not bit_shl bit_shr u8 u16 hex bin
- Host calls —
lt.* (all 68 functions: lt.draw, lt.rect,
lt.camera, lt.print, …) plus the lt.W / lt.H screen constants
- Numbers — decimal, floats,
0x hex and 0b binary literals
- Strings with escapes, and
// line comments
str and num are highlighted as functions when called (str(total))
and as types when used in annotations (let xs: list<num>).
Snippets
fn, for, if, while, record, letlist — type the prefix and
expand a skeleton.
Known gaps
pi is registered as a constant in the VM but the compiler does not
resolve it from Wick source, so the grammar deliberately does not
highlight it. Write the literal 3.14159.
- No language server yet: no diagnostics, no completions from your own
functions, no go-to-definition. Highlighting, brackets, and snippets
only — the part that makes the code readable everywhere.
Links
License
zlib License — see LICENSE. Copyright (c) 2026 the lantern
engine authors.