Skip to content

Workbench

santa-lang 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.

Workbench Editor
Running a solution with real-time output

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.

Running Tests
Running tests with expected values

Multiple Reindeer

Download and manage multiple backend implementations from within the app. Switch between them to test your solutions against different interpreters and compilers.

Reindeer Management
Managing installed reindeer versions

AoC Integration

Auto-detects read("aoc://YEAR/DAY") patterns in your code and fetches puzzle descriptions and inputs using your session token.

Puzzle Integration
Integrated Advent of Code puzzle descriptions

Comparative Testing

Run the same code on multiple reindeer simultaneously, comparing execution times side-by-side with performance charts.

Performance Comparison
Comparing performance across different reindeer

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