François d05595dc74 Add VERSION file as the single source for the extension version
Mirrors testium's src/VERSION: scripts/sync-version.js copies VERSION into
package.json#version (enforcing strict semver X.Y.Z, required by the marketplace
/ Open VSX). Wired into 'npm run package' and vscode:prepublish, so the version
is always synced before a build/publish. Bump = edit VERSION.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-05-30 14:44:59 +02:00

Testium Assist

Language support for testium .tum test scripts: syntax highlighting, completion, hover, and (later) diagnostics.

Works the same on VSCode and VSCodium — the extension uses only the standard VSCode API and vscode-languageclient, no Microsoft-proprietary surface.

How it works

The extension is a thin LSP client that spawns the language server shipped with testium itself (testium lsp). All the language intelligence (item types, parameter completion, schema awareness) lives in the testium repo — every new item type or parameter you add upstream becomes available in the editor on the next testium upgrade, without re-publishing this extension.

Two static parts live here, because they need to run before the LSP has a chance to start:

  • Syntax highlighting — a TextMate grammar under syntaxes/ delegates to the base YAML grammar and adds tokens for testium's $(name), <| python expr |>, and Jinja {% … %} / {{ … }} constructs.
  • Editor configuration — comment character, bracket pairs, auto-close pairs for $( ), <| |>, {% %}, {{ }}.

Requirements

  • VSCode ≥ 1.80 (or any recent VSCodium build).
  • A working testium installation with the lsp extra:
    pip install 'testium[lsp]'
    
    Or, when developing testium from source:
    pip install -e /path/to/testium/src[lsp]
    

Settings

Setting Default Description
testium.serverPath testium Path to the testium executable. Set this to your venv's bin/testium if testium isn't on $PATH.
testium.trace.server off LSP trace level surfaced in the Testium LSP output channel.

Development

npm install
npm run compile      # one-shot build
npm run watch        # rebuild on save

Press F5 in VSCode to launch a development host with the extension loaded. Open any .tum file; the Testium LSP output channel shows the language-server traffic when testium.trace.server is set to messages or verbose.

Versioning

The extension version lives in the VERSION file (single source of truth, like testium's src/VERSION). It must be strict semver X.Y.Z — the marketplace and Open VSX reject X.Y. npm run sync-version (run automatically by npm run package and vscode:prepublish) copies it into package.json. To release, bump VERSION and package.

Packaging

npm run package                  # sync VERSION -> package.json, then vsce package
# or, when already in sync:
npx vsce package                 # produces testium-assist-<v>.vsix

To install locally without publishing:

  • Code/Codium UIExtensions: Install from VSIX… from the command palette, pick the .vsix.
  • CLIcode --install-extension testium-assist-<v>.vsix (or codium --install-extension …).

Publishing

The extension targets two registries:

  • VS Marketplace (used by VSCode) — npx vsce publish. Requires a Microsoft publisher account.
  • Open VSX (used by VSCodium, Cursor, Gitpod, Theia, Eclipse Che) — npx ovsx publish. Free and open.

Both consume the same .vsix artifact. A GitHub Actions workflow that runs both on tag push is the typical setup.

Status

This is the MVP: completion of test item type names at the start of a new step. Hover, parameter completion, outline and diagnostics will follow as the testium LSP server gains those features — no extension re-publish needed.

License

EUPL-1.2 — same as testium.

Description
vs code / codium extension for testium
Readme EUPL-1.2 70 KiB
2026-05-30 14:44:59 +02:00
Languages
TypeScript 78.6%
JavaScript 21.4%