Synode for VS Code
IntelliSense, validation, and navigation for Synode synthetic data configurations.
Features
Rich Completions
Contextual autocomplete inside all Synode builder functions. Completions include field generators with signatures and examples, journey and dataset IDs from your workspace, and full scaffolded snippets with tab-stop navigation for defineJourney, defineAdventure, defineAction, defineDataset, and definePersona.
Educational Diagnostics
Live validation as you type, with messages that explain the underlying concept rather than just flagging the error. Diagnostics cover:
- bounceChance range -- explains what probability values mean and shows examples
- fields and handler conflict -- explains which one takes precedence and why
- Unknown journey references -- shows available IDs with typo suggestions using Levenshtein distance
- Missing bounceChance hint -- explains why drop-off simulation matters
- Circular dependencies -- detects cycles in journey requirement graphs
- Duplicate action IDs -- flags conflicts within adventures
Quick Fixes
One-click fixes via the lightbulb menu (Cmd+.) for common issues:
- Clamp out-of-range bounceChance to valid bounds
- Remove conflicting fields or handler property
- Replace typo journey references with the closest match
- Insert a bounceChance property with a sensible default
Hover Documentation
Hover over Synode constructs to see contextual information:
- bounceChance values show the percentage and valid range
- Journey IDs in
requires show the journey name, adventure count, and source location
- Dataset IDs in
ctx.dataset() show the dataset name, fields with types, and row count
- Field generators show the signature, description, return type, and usage example
CodeLens
Inline annotations above your code:
- Journey reference counts (how many other journeys depend on this one)
- Dataset summaries (row count and field count)
- "Run Preview" above
generate() calls
Go-to-Definition
Cmd+Click on journey IDs in requires arrays or dataset IDs in ctx.dataset() calls to jump directly to their definition, even across files.
Synode Explorer
A dedicated sidebar (beaker icon in the activity bar) with three tree views:
- Journeys -- all journeys with their adventures as children. Journeys with
requires show a "Requires" sub-group linking to their dependencies. Validation errors display inline with error icons and tooltips.
- Datasets -- all datasets expandable to show individual fields with inferred types and generator names (e.g.,
price: number (price), category: string (oneOf)).
- Personas -- all personas with attribute counts.
Right-click any node for context actions: Copy ID, Go to Definition, Copy Field Name, Show Requiring Journeys.
File Detection
The extension activates on TypeScript files matching either condition:
- Filename matches
*.synode.ts (configurable via synode.filePatterns)
- File contains imports from
@synode/core or any @synode/* package
Settings
| Setting |
Default |
Description |
synode.enable |
true |
Enable or disable the extension |
synode.hints.enable |
true |
Show info-level hints and suggestions |
synode.diagnostics.enable |
true |
Show error and warning diagnostics |
synode.codeLens.enable |
true |
Show CodeLens annotations |
synode.explorer.enable |
true |
Show the Synode Explorer sidebar |
synode.preview.userCount |
10 |
Number of users for the Run Preview command |
synode.filePatterns |
["**/*.synode.ts"] |
Glob patterns for Synode config file detection |
Commands
| Command |
Description |
| Synode: Rebuild Index |
Force a full re-scan of all Synode config files in the workspace |
| Synode: Run Preview |
Generate a small preview run in the terminal |
Requirements
- VS Code 1.110 or later
- A project using @synode/core 5.x or later
Documentation
Links
License
Copyright © 2026 Digitl Cloud GmbH