Skip to content

Release v3.0.0

Choose a tag to compare

@github-actions github-actions released this 15 Aug 11:03
3f270dc

Summary

Replaces reactor with reaction, and makes what sets one off a first-class, extensible trigger.

Added

  • reaction <Name> — behavior that runs when something happens, replacing reactor (#102)
  • Trigger clauses on a reaction: when <Name> for an event or a trigger, every <n> <seconds|minutes|hours|days> for an interval, and at <HH:mm> optionally narrowed by on <Weekday> or on day <n> (#102)
  • Bare names under a trigger select the values the occurrence hands the reaction, checked against what the event or trigger declares (#102)
  • where <condition> on a reaction, narrowing which occurrences run it (#102)
  • trigger <Name> — a top-level declaration of a kind of occurrence and the values it provides (#102)
  • TriggerDefinition and IScreenplayLanguageRegistry.Triggers, so a consumer can register a trigger and optionally state what an occurrence carries (#102)
  • Built-in Startup and Shutdown triggers (#102)
  • Reaction and trigger support in the Monaco language service and the VS Code extension, including completing the commands invokes can name (#102)
  • Reactions and Triggers documentation pages, with the matching EBNF productions (#102)

Changed

  • Slice.Reactors is now Slice.Reactions, and ReactorSyntax/ReactorTriggerSyntax are now ReactionSyntax/ReactionTriggerSyntax carrying a TriggerSourceSyntax (#102)
  • ScreenplaySyntaxWalker.VisitReactor/VisitReactorTrigger are now VisitReaction/VisitReactionTrigger, joined by VisitTrigger and VisitTriggerData (#102)
  • IScreenplayLanguageRegistry gains a Triggers member (#102)
  • PLAY0136PLAY0139 now describe reactions rather than reactors (#102)

Fixed

  • A malformed trigger reported both its own error and "reaction states no trigger", so one mistake produced two diagnostics and the second pointed at the header rather than at the line to fix (#102)
  • A trigger declaration is now carried through when a folder is compiled as one application (#102)