Lateralus Language

Pipeline-native programming with full LSP intelligence.
Rich language support for the Lateralus programming language — a pipeline-native language with a VM, C backend, bare-metal OS support, and its own assembly format.
✨ Features
Language Server Protocol (LSP)
The extension ships with a full LSP client that communicates with the Lateralus language server over JSON-RPC. Every standard LSP capability is wired up:
| Feature |
Keybinding |
Description |
| Diagnostics |
— |
Real-time errors, warnings, and hints as you type |
| Completions |
Ctrl+Space |
Context-aware completions with snippet support |
| Hover |
hover cursor |
Type info, documentation, and signatures on hover |
| Go to Definition |
F12 |
Jump to the definition of any symbol |
| Find References |
Shift+F12 |
Find all references to a symbol across your project |
| Document Formatting |
Shift+Alt+F |
Format entire files with the Lateralus formatter |
| Range Formatting |
select + Ctrl+K Ctrl+F |
Format just the selected region |
| Code Actions |
Ctrl+. |
Quick fixes, refactors, organize imports |
| Signature Help |
( / , |
Parameter hints while typing function arguments |
| Document Symbols |
Ctrl+Shift+O |
Navigate functions, structs, enums in the Outline view |
| Workspace Symbols |
Ctrl+T |
Search symbols across your entire workspace |
| Rename Symbol |
F2 |
Safely rename symbols across all files |
| Folding Ranges |
— |
Collapse functions, blocks, imports, and comments |
| Selection Range |
Shift+Alt+→ |
Smart expand/shrink selection |
Syntax Highlighting
Full TextMate grammars for 7 file types in the Lateralus ecosystem:
| Language |
Extension(s) |
Highlights |
| Lateralus |
.ltl |
Keywords, types, operators, string interpolation, decorators, pipes |
| Lateralus Assembly |
.ltasm |
80+ opcodes, registers, directives, labels |
| Lateralus Markup |
.ltlm / .ltlml |
Embedded Lateralus + Assembly blocks |
| Lateralus Config |
.ltlcfg |
Key-value pairs, sections, comments |
| Lateralus Notebook |
.ltlnb |
Cell markers, embedded code |
| Lateralus Bytecode |
.ltbc |
Binary file icon support |
| Lateralus Compiled |
.ltlc |
Binary file icon support |
Code Snippets
50+ snippets across all file types for rapid development:
.ltl snippets (click to expand)
fn · afn · let · letm · const · if · ife · ifee · match ·
while · for · loop · try · trye · struct · enum · impl ·
implfor · interface · type · pln · ret · spawn · await
.ltasm snippets
.section · .global · entry · prints · sub · call · jt ·
movimm · try · spawn
File Icons
Custom icons for every Lateralus file type — light and dark themes, 15 SVGs total.
Status Bar
Live indicator showing the LSP server state (running / error / stopped). Click to restart.
📋 Supported File Types
| File Type |
Extension |
Language ID |
| Lateralus source |
.ltl |
lateralus |
| Lateralus Assembly |
.ltasm |
lateralus-asm |
| Lateralus Markup |
.ltlm, .ltlml |
lateralus-markup |
| Lateralus Config |
.ltlcfg |
lateralus-cfg |
| Lateralus Notebook |
.ltlnb |
lateralus-notebook |
| Lateralus Bytecode |
.ltbc |
lateralus-bytecode |
| Lateralus Compiled |
.ltlc |
lateralus-compiled |
🚀 Quick Start
From the Marketplace
- Open VS Code
Ctrl+Shift+X → Search "Lateralus"
- Click Install
- Open any
.ltl file — the LSP starts automatically
From VSIX
code --install-extension lateralus-lang-2.5.0.vsix
From Source
git clone https://github.com/bad-antics/lateralus-lang.git
cd lateralus-lang/vscode-lateralus
npm install -g @vscode/vsce
vsce package
code --install-extension lateralus-lang-2.5.0.vsix
⚙️ Configuration
| Setting |
Default |
Description |
lateralus.enableLSP |
true |
Enable/disable the language server |
lateralus.pythonPath |
"" |
Custom Python path for the LSP server |
lateralus.formatOnSave |
false |
Auto-format on save |
lateralus.trace.server |
"off" |
Trace LSP communication (off / messages / verbose) |
🗺️ Language Quick Reference
module examples.hello
import io
@doc("Entry point")
pub fn main() {
let name: str = "Lateralus"
let nums = [1, 2, 3] |> map(fn(x) x * x)
io.println("Hello from {name}!")
}
pub struct Point { x: float y: float }
impl Point {
pub fn new(x: float, y: float) -> Point {
return Point { x: x, y: y }
}
}
async fn fetch(url: str) -> str {
return await http.get(url)
}
; Hello World in Lateralus Assembly
.section code
.global _start
_start:
PUSH_STR "Hello, World!"
PRINTLN
PUSH_IMM 0
HALT
🧩 Commands
Open the Command Palette (Ctrl+Shift+P) and type Lateralus:
| Command |
Description |
Lateralus: Restart Language Server |
Restart the LSP server |
Lateralus: Show Output Channel |
Open the Lateralus output log |
Lateralus: Format Document |
Format the current file |
Lateralus: Organize Imports |
Sort and clean up imports (Shift+Alt+O) |
🔗 Links
📄 License
MIT — see LICENSE.txt