Skip to content

v0.3.0

Choose a tag to compare

@thorbenlouw thorbenlouw released this 26 Mar 10:00

Highlights

@ref cross-references are the headline feature: write @customer.email instead of `customer.email` inside NL strings. The entire toolchain — parser, CLI, LSP, linter, lineage — understands them.

Grammar simplification collapsed ~150 internal rules with zero loss of expressiveness, making the parser faster and the CST cleaner for downstream tools.

30 bug fixes across two bughunt rounds hardened every CLI command.


Language

  • @ref syntax for cross-references: @schema, @schema.field, @ns::schema.field
  • Multi-source arrows: a, b -> target
  • Backtick-only labels (single-quoted labels removed)
  • Grammar simplified: greedy pipe_text, value_text, map_key/map_value

CLI (845 tests)

  • All commands extract and resolve @ref alongside backtick references
  • lineage follows @ref edges through the workspace graph
  • lint --fix auto-inserts missing source declarations for hidden NL refs
  • Canonical namespace-qualified output across all commands
  • 30 bug fixes including:
    • Source block join NL extraction
    • Field-scoped queries recurse into each/flatten blocks
    • No duplicate edges in graph --schema-only for namespaced mappings
    • No false field-not-in-schema warnings with duplicate mapping names
    • Mixed NL/structural classification detected correctly
    • --compact --json strips transforms, notes, and metadata
    • 3+ segment nested @ref paths resolve correctly
    • Lint no longer flags backtick emphasis in file-level notes

VS Code Extension

  • @ref highlighting in TextMate grammar
  • LSP semantic tokens, go-to-definition, and diagnostics for @ref

Docs

  • All examples, tutorials, and guides updated for @ref syntax
  • New EDI convention guide (EDIFACT / ODETTE / TRADACOMS)
  • Satsuma-to-Excel conversion skill

Infrastructure

  • npm run install:all builds WASM + LSP in one step
  • Integration tests run concurrently (24s → 7.5s)
  • CI test reporting via JUnit XML

Install CLI:

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

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

Install VS Code Extension:
Download vscode-satsuma.vsix and run:

code --install-extension vscode-satsuma.vsix

Build artifacts will be attached automatically when the release workflow completes.

Full Changelog: v0.2.0...v0.3.0