Detects JSON/YAML schemas (including embedded OpenAPI/AsyncAPI candidates) and renders every match, in document order, in a single visualizer view.
Keeps the editor and visualizer in sync: click any schema node/header/action to reveal its source, or place the caret in the editor to auto-focus the corresponding panel.
Provides schema header chips for type/composition/$ref, plus inline actions to add missing description/examples keys or externalize inline schemas (local files only, remote HTTP/HTTPS documents stay read-only).
Renders JSON or YAML examples with Prism highlighting; clicking an example jumps to the exact examples array entry in your document.
Resolves file and (optional) HTTP/HTTPS $ref targets with per-request caching, timeouts, and explicit warnings when a remote fetch fails instead of blocking the graph.
Interactions
Expand/Collapse: Click a section header to toggle it. Alt/Option‑click on a header expands/collapses the entire subtree recursively (VS Code‑style). A tooltip on the chevron reminds you of the shortcut.
Context menu: Right-click a schema header/body to “Externalize” an inline schema into its own file + $ref. (Only shown for local files to keep remote references immutable.)
Inline chips: Use the + Add description and + Add examples header chips to insert the missing keys directly at the correct pointer. The commands are path-aware, respect YAML indentation/flow style, and are suppressed for remote HTTP documents to avoid unexpected edits.
Quick Start
Open a JSON or YAML file containing a JSON Schema.
Run the command: “ScheV: Open Visualizer”.
Click any property to navigate to its definition in the editor.
Commands
ScheV: Open Visualizer — Open the visualizer beside the current editor.
ScheV: Set Output Format: JSON — Prefer JSON for rendered examples.
ScheV: Set Output Format: YAML — Prefer YAML for rendered examples.
Settings
schev.enableYaml (boolean, default: true) — Enable YAML parsing and visualization.
schev.enableRemoteRefs (boolean, default: true) — Fetch and render HTTP/HTTPS $ref targets (warnings surface when remote requests fail). Disable this if you need fully offline behavior.
schev.revealPreview (boolean, default: true) — Use preview tabs for reveals to reduce tab clutter.
schev.outputFormat (json|yaml) — Preferred examples format. If unset, follows the source file format.
schev.yamlIndent (number, default: 2) — YAML indent for examples.
schev.yamlLineWidth (number, default: 100) — Preferred YAML line width for examples.
Editing actions (Add description/examples, Externalize) are automatically disabled when the schema originates from an HTTP/HTTPS URI to avoid unexpected remote writes; no setting toggle is required.
Selection and Reveal
Clicking in the visualizer reveals the corresponding range in the editor.
Moving your caret in the editor updates the visualizer focus. Short debounce avoids excessive updates.
Existing tabs are reused when possible; reveals open in preview tabs unless configured otherwise.
Current Limitations
Inline editing is intentionally scoped to adding description / examples keys and externalizing local inline schemas. Broader schema editing remains out of scope for now.
Remote $ref fetching is enabled by default (HTTP/HTTPS only) and respects per-request timeouts; disable the setting for fully offline use.
Changelog
See packages/schev-extension/CHANGELOG.md
Screenshots
Schema detection and visualization running fully offline from the bundled assets.