Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>EasyBASICNew to Visual Studio Code? Get it now.
EasyBASIC

EasyBASIC

PlayDough1992 Development

| (0) | Free
Rich language support, syntax highlighting, integrated execution, standalone compiler (ebpack), and graphical installer wizard (ebinstaller) for EasyBASIC (.eb).
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

EasyBASIC for Visual Studio Code

EasyBASIC Banner

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 (eb, ebpack, ebinstaller) are pre-bundled directly inside the extension. No 3rd-party downloads, no external dependencies—install and start building immediately.


🚀 Features

  • 🎨 Rich Syntax Highlighting: Full TextMate grammar for EasyBASIC (.eb, .easybasic) statements, functions, ModernUI components, window flags, and standard libraries.
  • 📦 Bundled Toolchain: Includes the native compiler/VM engine (eb), standalone packager (ebpack), and graphical installer generator (ebinstaller).
  • ⚡ One-Click Execution: Run scripts instantly with F5, Ctrl+F5, or the Editor Title Bar Play button.
  • 🛠️ Integrated Standalone Compiler: Package standalone executables with application icons with one click.
  • 📦 Graphical Installer Wizard: Build multi-platform setup wizards directly from VS Code.
  • 📖 Built-in Syntax Reference: Press Ctrl+Shift+H or use the Book icon to open an interactive reference manual inside VS Code.
  • 💡 Smart Snippets: Productivity snippets for functions, windows, UI cards, dropdown menus, text editors, and file I/O.

🏁 Quick Start

1. Hello ModernUI

Create a file named hello.eb:

FUNC{start}
    WIN "EasyBASIC Reactive Studio" FOR ModernUI AS winApp _BORDERLESS AT 100, 100, 960, 650
        TITLEBAR "EasyBASIC Reactive Studio"
        CONTAINER AS mainContainer, DIRECTION="COLUMN", PADDING=16, GAP=12
            LABEL "Welcome to EasyBASIC ModernUI!", FONT="Sans 14"
            EDITOR AS docEditor, PADDING=12, FONT="Consolas 11"
                VALUE "Type notes and code here..."
            END EDITOR
            BUTTON "Click Me", STYLE="PRIMARY", ON CLICK FUNC{onBtnClick}
        END CONTAINER
    END WIN

    PRINT.winApp, "TRAPCLOSE FUNC{onAppClose}"
    DELAY

FUNC{onBtnClick}
    PRINT "[App] Button clicked!"

FUNC{onAppClose}
    PRINT "[App] Closing window..."
    KILL winApp
    END

2. Run the Script

Press F5 or click the Play button in the top-right corner of the editor.


📚 Complete Language & ModernUI Reference

Window Creation (WIN)

WIN "Title" FOR Type AS handle [Flags] AT x, y, width, height
  • Types: ModernUI, Graphics, Dialog, SDL2, OpenGL, WebUI
  • Flags:
    • _BORDERLESS: Frameless modern window (no OS titlebar)
    • _BORDERED: Modern window with sleek custom client titlebar & controls
    • _NMW: No minimize/maximize buttons
    • _CENTER: Automatically center window on screen
    • _RESIZABLE: Allow window resizing
    • _FULLSCREEN: Fullscreen presentation

Declarative ModernUI Components

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.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft