Stratum Language Support
Official VSCode extension for Stratum - a declarative, event-driven language for building powerful applications with intent-based architecture.
Overview
Stratum enables developers to write declarative code that compiles to intent graphs executed by a sandboxed runtime, providing type safety, event-driven architecture, and comprehensive built-in functions.
Features
- 140+ Built-in Functions - Comprehensive syntax highlighting across 15 categories
- Advanced Syntax Support - Control flow, type system, operators, generics, and match expressions
- Event Payloads - Full support for typed event declarations with payload props
- Match Expressions - Pattern matching with
match(), case, and default clauses
- Generic Types - Support for
Type<T> syntax and type inference
- Compatibility Modes - Strict and legacy modes with
# stratum:compatibility directives
- IntelliSense - Auto-completion for functions, keywords, and patterns
- Multiple File Extensions -
.stratum, .st, .strata, .stratm, .stm
- Custom Icons - Professional ST logo for all Stratum files
- Code Snippets - Quick scaffolding for extensions, events, and handlers
- JSDoc Comments - Documentation annotations with
@param, @event, @action
Quick Start
# stratum:compatibility strict
definition-stratum {
name "Session Alerts"
author "YourName"
version "0.0.1"
description "Notify admins when sessions start"
}
extension SessionAlerts {
init(meta) {
// runs once when loaded
}
event "session.started" {
payload {
id: string
name: string
timestamp: number
}
}
start {
// runs when enabled
on("session.started", (session) => {
match(session.status) {
case "active":
notify("admins", {
title: "Session Active",
message: session.name
})
default:
return
}
})
}
stop {
// runs when disabled
}
}
Language Capabilities
140+ Built-in Functions
- Workspace (15):
workspace-lock, workspace-members, workspace-audit
- Users (20):
user-get, user-role, user-activity, user-authenticate
- Sessions (15):
session-create, session-start, session-hosts
- Notifications (15):
notify, email, webhook, discord-send
- Storage (20):
db-query, redis-get, file-read, cache-set
- Time (20):
time-format, time-diff, schedule-at, schedule-cron
- Strings (20):
string-concat, string-match, string-template
- Math (20):
math-round, math-random, math-clamp
- Arrays (20):
array-map, array-filter, array-reduce
- Validation (15):
validate-email, validate-url, sanitize-html
- HTTP (15):
http-get, http-post, api-call, graphql-query
- Security (20):
encrypt, hash, jwt-encode, rate-limit
- UI (15):
ui-render, ui-modal, ui-navigate
- Integrations (15):
roblox-api, discord-api, github-api
Control Flow
if, else, elif, unless, switch, case, match
for, while, loop, foreach, map, filter, reduce
async, await, try, catch, finally
return, yield, break, continue, throw
Type System
- Primitives:
number, string, boolean, null
- Collections:
array, object, map, set
- Special:
date, time, timestamp, uuid, url, email, regex
- Storage Tiers:
state, persist, kv, memory, redis, database
- Generics:
List<T>, Map<K, V>, Result<T, E>
Pattern Matching
match(value) {
case "literal": action()
case 42: handleNumber()
default: handleOther()
}
Event Declarations
event "user.created" {
payload {
userId: string
email: email
timestamp: timestamp
}
}
Compatibility Modes
Add # stratum:compatibility strict at the top of your file for strict diagnostics on event payloads, generics, and type inference. Default is legacy mode.
Stratum Mono is the Strata-configured variant used in the Mono editor. It includes:
definition-stratum metadata blocks
- Extension lifecycle methods (
init, start, stop)
- Strata-specific functions (
workspace-nav-add, session-create, etc.)
The language server automatically detects which variant you're using and provides appropriate comple
- Comparison:
is, is_not, greater_than, less_than, between
- Logical:
and, or, not, xor
- String:
contains, starts_with, ends_with, matches
- Arithmetic:
+, -, *, /, %, **
Mono Editor Integration
The Stratum extension works seamlessly with your editor of choice. No separate configuration needed - install the extension and start writing Stratum code with full language server support and syntax highlighting.
Snippets
Type and press Tab:
plugin → Complete plugin file with definition-stratum and lifecycle
definition → definition-stratum block
extension → Extension with init/start/stop methods
event → Event handler
state → State variable
if → Conditional block
for → Loop block
Support
Issues: Report via GitHub or email support@coreline.software
v1.0.14 | Built by Coreline | Creator: 175985208 (Ron)
| |