YesWorkflow recovers workflow information from your scripts.
A VS Code extension for YesWorkflow (YW) that transforms YW annotations into interactive visualizations of computational stages and data flow—seamlessly integrated into your editor.
Key features
Language support
Bash (.sh), C (.c, .h), C++ (.cpp), Java (.java), MATLAB (.m), Python (.py), R (.R), and SAS (.sas)
Subworkflow support
Select and visualize nested workflows
Interactive graph visualization
Display workflows as interactive graphs in a side-by-side webview panel
Graph-to-code navigation
Click a graph node to highlight the corresponding lines in the script
View controls
Toggle visibility of steps, data, parameters, ports, boxes, and titles
Layout control
Switch graph layout direction between Down (top-to-bottom) and Across (left-to-right)
Zoom controls
Zoom in, zoom out, and fit the graph to view
Live reload
Automatically update the graph when the script is saved
Multiple export formats
Export as HTML or SVG, or copy the DOT string (via right-click in the webview panel)
A simple, complete example
The greetings example (Python)
# @begin EmphasizedHelloWorld @desc Display one or more greetings to the user. # @in provided_greeting # @in provided_emphasis # @param emphasis_count # @out displayed_greeting @desc Greeting displayed to user. def greet_user(greeting, emphasis='!', count=1): """ # @begin emphasize_greeting @desc Add emphasis to the provided greeting # @in greeting @as provided_greeting # @in emphasis @as provided_emphasis @param count @as emphasis_count # @out greeting @as emphasized_greeting """ if (count > 0): for i in range(0, count): greeting = greeting + emphasis # @end emphasize_greeting # @begin print_greeting @desc Greet the user with the emphasized message. # @in greeting @as emphasized_greeting # @out greeting @as displayed_greeting @file stream:stdout print(greeting) # @end print_greeting # @end EmphasizedHelloWorld
Process view
Data view
Combined view