Workbench
A cross-platform desktop IDE for santa-lang, designed to write and test Advent of Code solutions.
Overview
The Workbench provides a controlled environment for developing AoC solutions, with the ability to download, manage, and compare different backend implementations (reindeer) of santa-lang.
Built with Tauri 2.0 and React, featuring a Monaco editor with syntax highlighting, real-time execution output, and performance comparisons across implementations.
Installation
Homebrew (macOS)
brew install eddmann/tap/santa-lang-workbench
Release Binaries
| Platform | Download |
|---|---|
| macOS (ARM) | santa-workbench-0.1.2-macos-arm64.dmg |
| macOS (Intel) | santa-workbench-0.1.2-macos-amd64.dmg |
| Linux (x64) | santa-workbench-0.1.2-linux-amd64.deb |
| Linux (x64) | santa-workbench-0.1.2-linux-amd64.AppImage |
Features
Run Solutions
Execute santa-lang code with real-time streaming output showing progress as each part runs.
Run Tests
Define test cases with expected values and run them to validate your solutions.
Multiple Reindeer
Download and manage multiple backend implementations from within the app. Switch between them to test your solutions against different interpreters and compilers.
AoC Integration
Auto-detects read("aoc://YEAR/DAY") patterns in your code and fetches puzzle descriptions and inputs using your session token.
Comparative Testing
Run the same code on multiple reindeer simultaneously, comparing execution times side-by-side with performance charts.
Code Formatting
Built-in formatting via Tinsel, accessible through the toolbar or keyboard shortcut.
Editor
Monaco editor with syntax highlighting, multiple tabs, and dark themes.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd + Enter |
Run solution |
Cmd + Shift + Enter |
Run tests |
Cmd + S |
Save file |
Cmd + Shift + F |
Format code |
Reindeer Support
The Workbench can download and manage the following implementations:
| Codename | Type | Description |
|---|---|---|
| Comet | Rust | Tree-walking interpreter |
| Blitzen | Rust | Bytecode VM |
| Dasher | Rust | LLVM native compiler |
| Donner | Kotlin | JVM bytecode compiler |
| Prancer | TypeScript | Tree-walking interpreter |