Hen Language Support
Author, verify, run, inspect, and import OpenAPI-backed .hen collections directly in VS Code.
Hen Language Support combines the Rust hen CLI with a language server so Hen collections feel first-class in the editor: syntax-aware authoring, structured verification feedback, request-scoped actions, and failure inspection without leaving VS Code.
Features
Authoring
- Semantic highlighting for Hen declarations, directives, operators, response paths, and named references.
- Context-aware completions for fragment imports, request references, auth and session names, schema and scalar targets, response roots and accessors, and common snippets.
- Hover documentation for core Hen syntax plus contextual hover details for capture provenance, session reuse, richer filtered selectors, mapped dependency resolution, environment-backed interpolations, and typed schema validation with
=== in assertions or guards.
- Go to definition, find references, rename, document symbols, and document links for fragment imports and named Hen symbols.
Verification And Diagnostics
- Diagnostics powered by
hen verify --output json plus continuous language-server import diagnostics.
- Inline
[verify] ... summaries beside affected lines, with richer hover detail and quick fixes for re-running verification or jumping to executable settings.
- Executable provenance in verify feedback so it is clear whether the extension used a configured path, a workspace build, or
hen from PATH.
- Low-noise live import diagnostics for missing, unreadable, cyclic, or invalid fragment imports.
Request Workflow
- Request code lenses for
Run, Run + deps, Copy curl, and Preview details.
- Command palette actions to run a request or copy its curl by name from the current file.
- Explorer, editor-title, and command palette actions to import an OpenAPI JSON or YAML spec into a
.hen collection with hen import.
- Request-details previews rendered as Markdown, including failure summaries, assertion diffs, transcripts, retained artifacts, trace context, and links back to request definitions.
- Request execution and details surfaces that reuse the same CLI behavior as the core
hen tool instead of inventing editor-only semantics.
Editing Polish
- Hen file icons for
.hen files.
- Comment support for assertion labels.
- Hen-specific bracket, quote, and block editing behavior.
Requirements
The extension uses the hen CLI for verification, OpenAPI import, request inspection, curl export, and request-details previews.
Executable resolution order:
hen.executablePath
- Workspace
target/debug/hen
- Workspace
target/release/hen
hen on PATH
If you are working inside the Hen repository, the extension will usually pick up the local workspace build automatically.
Commands
Hen: Import OpenAPI Spec...
Hen: Verify Current Hen File
Hen: Clear Hen Diagnostics
Hen: Run Hen Request...
Hen: Copy curl for Hen Request...
Hen: Preview Hen Request Details...
Settings
hen.executablePath: Path to the hen executable.
hen.verify.onOpen: Run verification when a .hen file is opened.
hen.verify.onSave: Run verification when a .hen file is saved.
hen.activeEnvironment: Environment name used by context hovers when explaining whether an interpolation resolves from the base declaration or an override.
Notes
- Structural correctness still comes from
hen verify; the language server intentionally stays lighter weight than the Rust parser.
- Request metadata and request-picking surfaces use
hen inspect --output json as the machine-readable bridge.
- The editor now prefers hover-based context for implicit provenance and environment details to keep the document surface from getting crowded.
Local Development
Install dependencies and build the extension:
npm install
npm run build
Package the extension for local install or marketplace validation:
npm run package
To test locally in VS Code, open this folder and start an Extension Development Host, or install the generated .vsix.
| |