StateSmith 0.7.4-alpha
This is a prerelease version of StateSmith.
There is a newer version of this package available.
See the version list below for details.
See the version list below for details.
dotnet add package StateSmith --version 0.7.4-alpha
NuGet\Install-Package StateSmith -Version 0.7.4-alpha
This command is intended to be used within the Package Manager Console in Visual Studio, as it uses the NuGet module's version of Install-Package.
<PackageReference Include="StateSmith" Version="0.7.4-alpha" />
For projects that support PackageReference, copy this XML node into the project file to reference the package.
<PackageVersion Include="StateSmith" Version="0.7.4-alpha" />
<PackageReference Include="StateSmith" />
For projects that support Central Package Management (CPM), copy this XML node into the solution Directory.Packages.props file to version the package.
paket add StateSmith --version 0.7.4-alpha
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
#r "nuget: StateSmith, 0.7.4-alpha"
#r directive can be used in F# Interactive and Polyglot Notebooks. Copy this into the interactive tool or source code of the script to reference the package.
#:package StateSmith@0.7.4-alpha
#:package directive can be used in C# file-based apps starting in .NET 10 preview 4. Copy this into a .cs file before any lines of code to reference the package.
#addin nuget:?package=StateSmith&version=0.7.4-alpha&prerelease
#tool nuget:?package=StateSmith&version=0.7.4-alpha&prerelease
The NuGet Team does not provide support for this client. Please contact its maintainers for support.
[0.7.4-alpha]
Added
RunnerSettings.filePathPrintBaseto control how file paths are printed.- Required when C# scripts (.csx) are used.
- https://github.com/StateSmith/StateSmith/issues/79
[0.7.3-alpha]
Added
- draw.io - add support for draw.io plugin and new drawing style where a state can have its text event handlers as a child text node instead of its label #77.
- see
src/StateSmithTest/test-input/drawio/Design1Sm.drawio.svgor expand section below - https://github.com/StateSmith/StateSmith/issues/77
- child text must have matching style elements (in any order):
fillColor=none;gradientColor=none;strokeColor=none;resizable=0;movable=0;deletable=0;rotatable=0;- this is already done if you use the plugin https://github.com/StateSmith/StateSmith-drawio-plugin
- see
[0.7.2-alpha]
Added
- draw.io - embedded images inside of a draw.io diagram are now ignored. Issue #77.
- images are sometimes embedded in state machine diagrams for documentation purposes.
- draw.io - treat null labels as blank instead of throwing exception. Null labels don't normally occur. Issue #77.
- improved
$notesvalidations.
[0.7.1-alpha]
Added
- Add initial support for draw.io files as alternative to yEd files. https://github.com/StateSmith/StateSmith/issues/77
- Supported file extensions:
.drawio.svgRecommended as design file is a valid svg image that can be used in markdown and other files!.drawio.dio
- Supported file extensions:
[0.7.0-alpha]
Changed
- Generated .h file now automatically includes
<stdint.h>(required for history states).
Added
- Add history. https://github.com/StateSmith/StateSmith/issues/63
- Deep history functionality supported via history continue nodes.
- plantuml supports history states and history continue nodes.
- Add
$prefixmethods.- Experimental feature to help with duplicate state names. https://github.com/StateSmith/StateSmith/issues/65
Fixed
- Pseudo state transition de-duplication now considers initial state parent incoming transition count too.
- Improved exit handling optimization.
[0.6.1-alpha]
Added
- Improve generated code clarity by showing step 1,2,3... and other small things.
- Improve generated code clarity by removing
if (true)for behaviors with no guard clause. - Improve generated code by nulling
ancestor_event_handleronly when actually needed. https://github.com/StateSmith/StateSmith/issues/14 - Throw helpful exception message when duplicate state name used. Previously relied on c compiler and user to catch the problem.
VertexValidationException: Duplicate state name `OPTION` also used by state `Statemachine{LaserTagMenu1Sm}.State{MENUS_GROUP}.State{MAIN_MENU}.State{OPTION}`.
Vertex
Path: Statemachine{LaserTagMenu1Sm}.State{MENUS_GROUP}.State{MM_SHOW_INFO}.State{OPTION}
Diagram Id: n0::n3::n2::n2
Children count: 0
Behaviors count: 3
Incoming transitions count: 2
[0.6.0-alpha]
Fixed
- Fix parent self transition involving initial state incorrect https://github.com/StateSmith/StateSmith/issues/49
- StateSmith grammar fix for parsing 'e()'. https://github.com/StateSmith/StateSmith/issues/60
Changed
- Transition actions are now run after states are exited (instead of before) https://github.com/StateSmith/StateSmith/issues/6
- Reserved
else"trigger" name forelsefunctionality https://github.com/StateSmith/StateSmith/issues/59
Added
- Support
$choicepseudo states/points https://github.com/StateSmith/StateSmith/issues/40- supported in PlantUML as well.
- Support multiple transitions for initial states, entry points, exit points. https://github.com/StateSmith/StateSmith/issues/40
- Allow multiple transitions from initial state.
- Initial state must have a default transition (always true).
- Allow incoming transitions to initial state.
- Allow multiple transitions from entry point.
- Entry point must have a default transition (always true).
- Allow incoming transitions to entry point.
- Allow multiple transitions from exit point.
- Exit point must have a default transition (always true).
- Allow specifying
elseon transitions https://github.com/StateSmith/StateSmith/issues/59 - Optimize pseudo state transitions to avoid code duplication.
- Especially important for when History states are eventually implemented as the code de-duplication savings can rack up big there.
- Improve entry and exit point validations.
- Detect duplicate labels in the same scope.
- Allow exit points to target parent state. Same as a self transition on parent.
- grammar - support backtick strings and other ASCII symbols https://github.com/StateSmith/StateSmith/issues/42
[0.5.9-alpha]
Added
- Runner - set process exit code to -1 on failure.
- Runner - output additional exception details to
<diagram_file_path>.err.txt. This is useful for generic assert like exceptions that don't yet have useful error messages. https://github.com/StateSmith/StateSmith/issues/38 - validation - new exception:
State machines must have exactly 1 initial state. Actual count: 0. - validation - helpful error messages for when state machine design is not found.
- Add Describe() methods for Behavior and Vertex.
- Add
TracingModderclass and experimentalRunner.postParentAliasValidation()callback that allows graph modification.
Fixed
- Root initial transition actions are now output. Had been ignored previously. Other initial transition actions were output properly. https://github.com/StateSmith/StateSmith/issues/47
- Parent to child transition now exits current child first. https://github.com/StateSmith/StateSmith/issues/46
- Parent to self transition now exits current child first. https://github.com/StateSmith/StateSmith/issues/48
[0.5.7-alpha]
Added
- detect yEd hidden edges https://github.com/StateSmith/StateSmith/issues/29
- Better error reporting regarding diagram edge IDs.
- Improve PlantUML parsing https://github.com/StateSmith/StateSmith/issues/21
notes, and improve parsing of malformedskinparamblocks.
- Prevent antlr4 error output to console.
Fixed
- Now throws useful lexer stage exceptions instead of printing them and not recognizing the failure. https://github.com/StateSmith/StateSmith/issues/31
[0.5.6-alpha]
Added
- Support PlantUML input as an alternative to yEd input. Input file extension must be one of ".pu", ".puml", ".plantuml" https://github.com/StateSmith/StateSmith/issues/21
[0.5.5-alpha]
Fixed
- Fix generated comment regarding marking event as handled when not for a transition
[0.5.4-alpha]
Added
- Support
entryandexitpoints https://github.com/StateSmith/StateSmith/issues/3 - Initial support for
$PARENT_ALIASnodes. https://github.com/StateSmith/StateSmith/issues/2 - Improve exception error messages
[0.5.3-alpha]
Fixed
- Fix generated comment about exiting to LCA name
- Fix
FinishCodeBlock()whenBracesOnNewLines = false;
| Product | Versions Compatible and additional computed target framework versions. |
|---|---|
| .NET | net6.0 is compatible. net6.0-android was computed. net6.0-ios was computed. net6.0-maccatalyst was computed. net6.0-macos was computed. net6.0-tvos was computed. net6.0-windows was computed. net7.0 was computed. net7.0-android was computed. net7.0-ios was computed. net7.0-maccatalyst was computed. net7.0-macos was computed. net7.0-tvos was computed. net7.0-windows was computed. net8.0 was computed. net8.0-android was computed. net8.0-browser was computed. net8.0-ios was computed. net8.0-maccatalyst was computed. net8.0-macos was computed. net8.0-tvos was computed. net8.0-windows was computed. net9.0 was computed. net9.0-android was computed. net9.0-browser was computed. net9.0-ios was computed. net9.0-maccatalyst was computed. net9.0-macos was computed. net9.0-tvos was computed. net9.0-windows was computed. net10.0 was computed. net10.0-android was computed. net10.0-browser was computed. net10.0-ios was computed. net10.0-maccatalyst was computed. net10.0-macos was computed. net10.0-tvos was computed. net10.0-windows was computed. |
Compatible target framework(s)
Included target framework(s) (in package)
Learn more about Target Frameworks and .NET Standard.
-
net6.0
- Antlr4.Runtime.Standard (>= 4.9.2)
- Microsoft.CodeAnalysis.CSharp (>= 3.10.0)
- System.Xml.ReaderWriter (>= 4.3.1)
NuGet packages
This package is not used by any NuGet packages.
GitHub repositories
This package is not used by any popular GitHub repositories.
| Version | Downloads | Last Updated |
|---|---|---|
| 0.22.1-alpha-1 | 102 | 4/14/2026 |
| 0.22.0-alpha-1 | 81 | 4/13/2026 |
| 0.19.0 | 405 | 2/1/2026 |
| 0.19.0-alpha-1 | 8,022 | 8/30/2025 |
| 0.18.0 | 269 | 7/28/2025 |
| 0.17.6 | 240 | 7/3/2025 |
| 0.17.5 | 283 | 4/19/2025 |
| 0.17.4 | 301 | 4/15/2025 |
| 0.17.3 | 259 | 2/22/2025 |
| 0.17.2 | 233 | 1/8/2025 |
| 0.17.1 | 5,500 | 10/16/2024 |
| 0.17.0 | 229 | 10/4/2024 |
| 0.16.0 | 217 | 9/22/2024 |
| 0.15.1 | 251 | 9/12/2024 |
| 0.15.0 | 260 | 9/9/2024 |
| 0.14.0 | 272 | 9/7/2024 |
| 0.13.2 | 252 | 9/4/2024 |
| 0.7.4-alpha | 293 | 1/21/2023 |
| 0.0.0-cicd-april-12-test-4 | 80 | 4/13/2026 |
Loading failed