Skip to main content

IDE Plugins

Official editor plugins add language support for .wsl and .swsl files. Source and binaries: github.com/kuetix/ide-plugins.

Both plugins are language-support only — they do not execute workflows. Execution is handled by the kue CLI or the engine runtime.

Supported IDEs​

IDE familyVersionsPlugin
JetBrains (IntelliJ IDEA, GoLand, WebStorm, PyCharm, PhpStorm, CLion, Rider, …)Any IntelliJ Platform 2023.3+ buildjetbrains-wsl
Visual Studio Code1.75+vs-code-wsl

The JetBrains plugin is built in two variants: a legacy build covering 2023.3 → 2025.1 and a separate 2025.2+ build (Java 21 / Kotlin 2.2). Both ship the same plugin version.

Features​

FeatureJetBrainsVS Code
Syntax highlighting for .wsl and .swslyesyes
Keyword completionyesyes
Snippet completion (workflow, state, action, def, feature, solution, hierarchical calls)yesyes
Module / method completion from modules.jsonyesyes
Brace matching ({}, ())yesyes
Line (//) and block (/* */) comment togglingyesyes
Hash (#) line comments in .swslyesyes
Auto-closing pairs for brackets and quotesn/ayes
File-type iconsyesyes
Structure view (workflows and states)yes—
Color settings pageyes—

Neither plugin currently performs semantic validation or diagnostics — invalid syntax is caught when the workflow is parsed by kue or the engine.

Installation​

JetBrains​

The plugin builds as a .zip archive (e.g. jetbrains-wsl-1.4.1.zip).

  1. Download the archive from the latest release or build it locally.
  2. In your IDE: Settings → Plugins → ⚙ → Install Plugin from Disk…
  3. Select the .zip file and restart the IDE when prompted.

To build from source:

git clone https://github.com/kuetix/ide-plugins
cd ide-plugins/jetbrains-wsl
./gradlew buildPlugin
# Output: build/distributions/jetbrains-wsl-<version>.zip

For 2025.2+ builds use the variant Gradle files:

./2025-docker-build.sh
# Output: output/jetbrains-wsl-<version>.zip

Visual Studio Code​

The plugin builds as a .vsix package (e.g. wsl-language-support-1.2.0.vsix).

  1. Download the .vsix from the latest release or build it locally.
  2. In VS Code: Extensions sidebar → … menu → Install from VSIX…
  3. Select the .vsix file.

To build from source:

git clone https://github.com/kuetix/ide-plugins
cd ide-plugins/vs-code-wsl
npm install
npm run compile
npx vsce package
# Output: wsl-language-support-<version>.vsix

Module-aware completion (modules.json)​

Both plugins resolve module and method names for completion by reading modules.json from your workspace. They look in, and merge, the following paths in order:

  1. <project root>/modules.json
  2. <project root>/workflows/modules.json
  3. <project root>/runtime/workflows/modules.json

Files are watched and merged automatically — later sources override earlier entries. If modules.json is missing or malformed the plugins fall back silently to keyword-only completion.

The file format is a map keyed by module path:

{
"auth/login": {
"info": {
"namespace": "auth",
"class": "Login",
"label": "Login",
"description": "User authentication"
},
"methods": [
{ "value": "authenticate", "label": "authenticate", "description": "Authenticate a user" },
{ "value": "logout", "label": "logout", "description": "End the user session" }
]
}
}

Once loaded, typing action in a state (or any action position in .swsl) suggests module paths; after a trailing ., it suggests methods for that module.

See the Modules reference for the canonical module concept.

Snippets​

Selected prefixes available in .wsl files:

PrefixInserts
workflowWorkflow skeleton with start, a state, and end ok
stateNamed state with action and on success / on error
state-endTerminal state with end ok / end error
actionaction <path>.<method>() placeholder
constconst { … } block
on-success, on-errorTransition lines

Selected prefixes available in .swsl files:

PrefixInserts
swsl-workflow, swsl-feature, swsl-solutionWorkflow-type skeleton
swsl-defReusable def action with body
swsl-def-errorError handler def
swsl-flow, swsl-chainAction flow with -> chains and <- error binding
swsl-call-workflow, swsl-call-featureHierarchical call (workflow:, feature:)
$const, $contextConstant / context variable reference

Limitations​

  • No semantic validation, "go to definition", rename refactoring, or find usages.
  • No formatter.
  • No language server — both plugins are pure in-IDE implementations and do not call out to kue, the MCP server, or any other process.
  • The IDE plugins are versioned independently of the engine; their version number does not track engine releases.