A VS Code extension providing language server support and syntax highlighting for the Quickfall programming language (.qf files).
- Syntax highlighting - full grammar for keywords, types, literals, strings, comments, and operators
- Diagnostics — error reporting for lexer and parser errors
- Autocompletion — keywords, built-in types, snippet templates, and in-scope symbols (functions, variables, structs, layouts)
- Hover information — documentation on hover for keywords, types, functions, variables, and struct/layout fields
- Language configuration — bracket matching, auto-closing pairs, folding, and indentation rules
- Boilerplates with code snippets
- A full user-installable VSCode extension (including maybe some other IDEs, we'll see)
- Code examples
git clone https://github.com/Quickfall/language-server.git
cd language-servernpm installnpm run buildThis compiles all TypeScript sources into the out/ directory.
- Open this folder in VS Code.
- Press F5 to launch the Extension Development Host.
- Open or create a
.qffile — the language server will activate automatically.
npm run watchRecompiles on every file save so you can simply reload the Extension Development Host window (Ctrl+Shift+P → Developer: Reload Window).
| Signed | Unsigned | Other |
|---|---|---|
s8 |
u8 |
ptr |
s16 |
u16 |
bool |
s32 |
u32 |
staticstr |
s64 |
u64 |
|
s128 |
u128 |
Integer literals support type suffixes: 65_s32, 255_u8, 544_u64.
// Function declaration
func add(s32 a, s32 b) s32 {
ret a + b
}
// External / FFI function
shadowfunc printf(ptr str_ptr) s32
// Variables
var s32 count = 0
static staticstr greeting = "hello"
// Control flow
if(count > 0) {
// ...
} else {
// ...
}
for(s32 i = 0, i <= 10, i += 1) {
// ...
}
while(count > 0) {
count -= 1
}
// Structs and layouts
struct Point {
s32 x
s32 y
}
layout Buffer {
u8 data
s32 length
}
├── client/src/extension.ts # VS Code extension client
├── src/
│ ├── entry.ts # Language server entry point
│ ├── lexer.ts # Tokenizer
│ ├── parser.ts # Parser → AST
│ ├── ast.ts # AST node definitions
│ ├── diagnostics.ts # Diagnostic bridge (parse errors → LSP)
│ ├── completion.ts # Completion provider
│ └── hover.ts # Hover provider
├── syntaxes/quickfall.tmLanguage.json # TextMate grammar
├── language-configuration.json # Bracket/folding/indent config
├── package.json
└── tsconfig.json