- implemented: abstract syntax - and/or states - pseudo-states - enter/exit trigger - shallow/deep history - transitions - event/after trigger - event parameters - guard expressions - action language expressions: - arithmetic, logic - variable references - function calls actions: - variable assignment - raising output events semantics - initialization - raising input events - time: - paused / step-wise - (scaled) real time - omniscient debugging - coupled execution with "plant" - MTL properties & checking of plant state - recording and replaying traces TODO - bugs editing SC <-> Plant connections at runtime doesn't seem to work - maybe support: - explicit order of: - outgoing transitions? - write documentation although ideally the tool should explain itself... - usability stuff: - action language: add increment operations (++) and (--) and (+=) and (-=) - snap: comments only to states triggers only to transitions entry/exit only to states - ability to hide statechart and only show the plant? - hovering over event in side panel should highlight all occurrences of the event in the SC - rename events / variables find/replace? - hovering over error in bottom panel should highlight that error in the SC - highlight selected shapes while making a selection - highlight about-to-fire transitions - integrate undo-history with browser history (back/forward buttons) - ability to 'freeze' editor (e.g., to show plant SC) - show insert mode also next to cursor - plot plant signals - performance: maybe try this for rendering the execution trace: https://legacy.reactjs.org/docs/optimizing-performance.html#virtualize-long-lists - experimental features: - multiverse execution history stable tree layout? https://pub.dev/packages/ploeg_tree_layout - local variable scopes Publish StateBuddy paper(s): compare CS approach to other tools, not only YAKINDU z