Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>WARD/EN Directive LanguageNew to Visual Studio Code? Get it now.
WARD/EN Directive Language

WARD/EN Directive Language

Halden Recovery

| (0) | Free
Language support for WARD/EN salvage directives (.warden): diagnostics, completion, hover, navigation, rename and semantic highlighting from the game's own language service.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

WARD/EN Directive Language

Language support for WARD/EN salvage directives (.warden) in Visual Studio Code: diagnostics, completion, hover, signature help, go to definition, find references, rename, document and workspace symbols, and semantic highlighting.

Everything language-aware comes from the language server that ships with the game. It is the same language service the in-game Workbench uses, so the editor reports exactly what the game will: syntax and semantic errors, include resolution, and whether the drone's installed hardware provides each capability a directive needs.

Requirements

  • WARD/EN installed. The extension has no language server of its own.
  • Launch the game once. On every launch it records where its language server lives, and the extension reads that record. If the record is missing, set warden.game.path to the installation: the WARDEN.app bundle on macOS, or the folder holding WARDEN.exe (Windows) or warden (Linux).

No Node.js installation is needed. The server runs on the runtime bundled with the game.

Working on a directive

Use Workbench → Export in the game to produce a warden-project file that carries your current fit and the wreck's site names, unpack it into a folder, and open that folder in VS Code. A workspace is a folder of .warden files plus warden.json; the entry file holds language 2; and on start, and other files are modules reached through include. Pack the folder back into a project file and import it in the Workbench during preparation. Imports are validated and never rewrite your source, and a dispatched mission keeps its own frozen snapshot regardless of later edits.

Without warden.json the server assumes main.warden, no target fit and no site names.

Formatting is not provided: the canonical printer drops comments, and the Workbench does not format either.

Colours

The extension maps the language's semantic token types (keyword, sensor, action, variable, parameter, function, number, string, enum, enumMember, comment, invalid) to standard TextMate scopes. Your theme decides the colours. To single out sensing and action builtins, target support.function.sensor.warden and support.function.action.warden in editor.tokenColorCustomizations.

Settings

Setting Purpose
warden.game.path The game installation, when the extension cannot find it by itself.
warden.server.command Executable for a custom server. Only used with warden.server.args.
warden.server.args Arguments for a custom server command; replaces the whole command.
warden.server.checkout Developers only: a WARD/EN source checkout. The server then runs from it with Node 22.13 or later.
warden.trace.server off, messages or verbose tracing of the protocol in the "WARD/EN Language Server" output channel.

Commands: WARD/EN: Restart Language Server and WARD/EN: Show Language Server Location.

How the server is found

In order: warden.server.args, then warden.game.path, then warden.server.checkout, then the registration the game writes at launch (tooling.json in its user-data folder: ~/Library/Application Support/WARDEN on macOS, %APPDATA%\WARDEN on Windows, ~/.config/WARDEN on Linux). The game's executable is started with ELECTRON_RUN_AS_NODE=1 and the bundled server script, and speaks the Language Server Protocol over stdio.

Any other LSP client can run the same command for .warden files.

Development

npm install

Press F5 to run the extension in an Extension Development Host, then open a folder of .warden files. To package and install locally:

npx vsce package
code --install-extension warden-dsl-0.1.0.vsix

License

MIT. The extension is a thin client; the language server and the game are separate, proprietary software.

Releasing

Releases are made by the Publish workflow when a version tag is pushed:

npm version minor      # or patch / major: bumps package.json and creates the v… tag
git push --follow-tags

The workflow packages one .vsix, publishes it to the Visual Studio Marketplace, to Open VSX when an OVSX_PAT secret exists, and attaches it to a GitHub release. It needs a VSCE_PAT repository secret: an Azure DevOps personal access token with the Marketplace "Manage" scope for the halden publisher. Update CHANGELOG.md before tagging.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft