EasyBASIC for Visual Studio Code
EasyBASIC is a modern, high-performance programming language combining the legendary simplicity of classic BASIC with modern C++20 execution, reactive declarative UI components (Flutter/React style), hardware-accelerated 2D/3D graphics, and out-of-the-box cross-platform distribution. This extension provides a complete, self-contained development environment. All binaries ( 🚀 Features
🏁 Quick Start1. Hello ModernUICreate a file named
2. Run the ScriptPress 📚 Complete Language & ModernUI ReferenceWindow Creation (
|
| Component | Description | Syntax Example |
|---|---|---|
TITLEBAR |
Modern titlebar with caption and window controls | TITLEBAR "Untitled - Notepad" |
NAVBAR |
Top navigation / dropdown menu bar | NAVBAR AS menu ... END NAVBAR |
TAB |
Dropdown menu header | TAB "File" ... END TAB |
ITEM |
Clickable menu action item | ITEM "Open...", ON CLICK FUNC{onOpen} |
EDITOR |
Interactive multiline text editor with caret navigation | EDITOR AS doc, PADDING=12, FONT="Consolas 11" |
CONTAINER |
Flexbox container (DIRECTION="ROW" or "COLUMN") |
CONTAINER AS box, DIRECTION="COLUMN", GAP=10 |
GRID |
Responsive multi-column layout grid | GRID COLUMNS=3, GAP=12 ... END GRID |
CARD |
Elevated card surface with title, value, and badge | CARD AS card, PADDING=12 ... END CARD |
BUTTON |
Interactive button (PRIMARY, SECONDARY, DANGER) |
BUTTON "Save", STYLE="PRIMARY", ON CLICK FUNC{onSave} |
LABEL |
Text label with customizable typography | LABEL "Ready", FONT="Sans 9" |
BADGE |
Colored status pill (EMERALD, CYAN, INDIGO, RED) |
BADGE "UTF-8", COLOR="INDIGO" |
PROGRESS |
Animated percentage progress indicator (0-100) | PROGRESS 85, COLOR="CYAN" |
Standard Libraries
File System (FILE)
// Check existence
IF FILE.EXISTS("config.json") THEN
// Read whole file
DIM content AS STRING = FILE.READALL("config.json")
PRINT "File length: " + STR(LEN(content))
END IF
// Write / Overwrite file
FILE.WRITEALL("log.txt", "Log entry: " + TIME.NOW())
// Append to file
FILE.APPEND("log.txt", "\nNew line")
// Delete file
FILE.DELETE("temp.txt")
Native File Dialogs (FILEDIAG)
// Open File Dialog
FILEDIAG OPEN, "*.txt;*.eb;*.json" TO selectedPath
IF selectedPath != "" THEN
PRINT "Selected: " + selectedPath
END IF
// Save File Dialog
FILEDIAG SAVE, "*.txt" TO savePath
IF savePath != "" THEN
FILE.WRITEALL(savePath, "Saved content")
END IF
Timestamps & Clock (TIME)
DIM currentStr AS STRING = TIME.NOW() // E.g. "2026-10-03 14:30:00"
DIM tickCount AS NUMBER = TIME.TICKS() // Millisecond high-res timer
JSON Serializer & Parser (JSON)
DIM jsonString AS STRING = "{\"name\": \"EasyBASIC\", \"version\": 1.0}"
DIM parsed = JSON.PARSE(jsonString)
PRINT parsed["name"]
DIM serialized AS STRING = JSON.STRINGIFY(parsed)
🛠️ Toolchain Reference
1. eb (VM / JIT Runtime)
Executes EasyBASIC scripts immediately:
eb run script.eb
2. ebpack (Standalone Binary Packager)
Compiles your .eb project into a single native binary with icon metadata:
ebpack script.eb --output myapp
3. ebinstaller (Graphical Installer Generator)
Generates a graphical software installation wizard for seamless distribution:
ebinstaller script.eb --name "My Application"
⌨️ Extension Commands & Shortcuts
| Command | Keybinding | Action |
|---|---|---|
EasyBASIC: Run Script |
F5 / Ctrl+F5 |
Runs active .eb script in terminal |
EasyBASIC: Package Standalone Executable |
Context Menu | Packages standalone binary via ebpack |
EasyBASIC: Generate Graphical Installer |
Context Menu | Builds installation wizard via ebinstaller |
EasyBASIC: Show Syntax Reference |
Ctrl+Shift+H |
Opens the built-in interactive manual |
📄 License
EasyBASIC is released under the MIT License.
