VS Code Extension

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.

Live reload updates the graph when you save.

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)

greetings.py
# @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

Process view of the greetings workflow

Data view

Data view of the greetings workflow

Combined view

Combined view of the greetings workflow