Skip to content

v0.2.0

Choose a tag to compare

@github-actions github-actions released this 24 Mar 20:49

Highlights

satsuma fmt — Opinionated Zero-Config Formatter

One canonical style for all Satsuma files. No settings, no overrides — like gofmt or black.

  • CLI: satsuma fmt [path] with --check (CI mode), --diff, and --stdin
  • VS Code: Format Document (Shift+Alt+F) and format-on-save via the LSP
  • CI enforcement: satsuma fmt --check examples/ runs on every PR

The formatter walks the tree-sitter CST, preserves all comments, and never changes semantics. Field columns are aligned, blank lines normalized, and spacing made consistent — automatically.

VS Code WASM Migration

The LSP server now uses web-tree-sitter (WASM) instead of native bindings, eliminating platform-specific build requirements. The extension works on any platform without compiling C.

VS Code Navigation Enhancements

  • Arrow navigation — Ctrl+Click from arrow paths to source/target schema fields
  • NL-ref navigation — Ctrl+Click from backtick references inside NL strings to their definitions
  • TODO diagnostics//! and //? comments surface in the Problems panel
  • Underlined NL refs — backtick references get underline styling for visual distinction

All Changes

Formatter (satsuma fmt)

  • Opinionated, zero-config formatter — one canonical style, no overrides
  • CLI command with --check, --diff, --stdin flags and exit codes 0/1/2
  • VS Code DocumentFormattingProvider using the same shared format() function
  • Parser-backed CST walk preserving all comments and semantics
  • Field column alignment with name/type/metadata caps (24/14 chars)
  • Blank line normalization, comment spacing, trailing whitespace removal
  • CI step: satsuma fmt --check examples/ on every PR
  • 81 formatter tests, 16/16 corpus files idempotent and structurally equivalent

VS Code Extension

  • Migrated LSP server to web-tree-sitter (WASM) — no native binaries needed
  • Arrow and NL-ref go-to-definition navigation
  • TODO diagnostics for //! and //? comments
  • Underlined backtick references in NL strings
  • Fixed WASM runtime packaging in .vsix artifacts

Site & Documentation

  • GitHub Pages site with brand guide, CLI reference, VS Code feature tour, examples gallery
  • Dynamic version templating and release notes links
  • FAQ section and no-CLI getting-started guide
  • Updated CLI docs, AI agent reference, and README for 17 commands

Infrastructure

  • Versioned releases via manual workflow_dispatch
  • Build artifacts auto-attached to tagged releases
  • Shell injection fix in CI workflow inputs
  • .gitignore for TypeScript build artifacts in src/ directories

Install

CLI (pick your platform):

# macOS (Apple Silicon)
npm install -g https://github.com/thorbenlouw/satsuma-lang/releases/download/v0.2.0/satsuma-cli-darwin-arm64.tgz

# Linux (x64)
npm install -g https://github.com/thorbenlouw/satsuma-lang/releases/download/v0.2.0/satsuma-cli-linux-x64.tgz

# Windows (x64)
npm install -g https://github.com/thorbenlouw/satsuma-lang/releases/download/v0.2.0/satsuma-cli-win32-x64.tgz

VS Code Extension:
Download vscode-satsuma.vsix from the assets below and install:

code --install-extension vscode-satsuma.vsix

Full Changelog: v0.1.0...v0.2.0