Bloblang language support for Visual Studio Code — syntax highlighting plus
language intelligence (completion, hover, go-to-definition, diagnostics) powered
by the blobl_lsp language server.
Features
- Syntax highlighting for standalone
.bloblfiles, via a TextMate grammar derived from theblobl_sittertree-sitter grammar. - Embedded highlighting of Bloblang inside Bento/Warpstream YAML config
block scalars (
bloblang,mapping,request_map,result_map,extract_tracing_map,fields_mapping, and any other|/>block). - Language server features — completion, hover, definition, and diagnostics for both standalone files and embedded YAML blocks.
Requirements
The extension automatically downloads the matching blobl_lsp binary for your
platform from the Codeberg releases
on first activation, verifies its SHA-256, and stores it in the extension's global
storage. No manual installation is needed.
| Setting | Default | Description |
|---|---|---|
bloblang.server.path |
`` (empty) | Path to a blobl_lsp binary. Leave empty to use the managed download; set it to override with your own binary. |
bloblang.trace.server |
off |
Trace client/server communication. |
Resolution precedence: an explicit bloblang.server.path → the managed downloaded
binary → blobl_lsp on your $PATH (fallback if the download fails). Run
Bloblang: Update Language Server from the command palette to force a re-download.
Note on activation. The extension activates on
.bloblfiles and on all YAML files, so it can highlight and analyse Bloblang embedded in Bento/Warpstream configs. Highlighting applies to every multi-line block scalar (|/>), since the editor's YAML grammar does not let injections detect which key introduced a block. The language server self-gates on block position, so plain YAML without Bloblang blocks is left untouched.
Building the VSIX
npm install
npm run build
npm run package
Install the resulting .vsix with code --install-extension blobl-lsp-vscode-*.vsix.
Releasing
Publishing to the VS Code Marketplace
and Open VSX is
automated by the Forgejo Actions workflow in .forgejo/workflows/publish.yml,
triggered when a vX.Y.Z tag is pushed. The tag must match the version in
package.json.
# bump "version" in package.json + update CHANGELOG.md first, then:
git tag v0.3.0
git push origin v0.3.0
The workflow requires two repository secrets (Settings → Actions → Secrets),
and Actions must be enabled for the repo with a runner labelled docker:
| Secret | Purpose |
|---|---|
VSCE_PAT |
Azure DevOps PAT for publisher hsctech-dev (Marketplace → Manage scope). |
OVSX_PAT |
Open VSX access token for the hsctech-dev namespace. |
Development
Run the grammar snapshot tests and type-check:
npm test
Manual smoke test
The language-client wiring is verified by hand:
npm install && npm run build, then press F5 to launch the Extension Development Host.- Open a
.bloblfile — confirm keywords, strings,$vars,@metadata, and builtin calls are highlighted. - On first activation the extension downloads
blobl_lspfor your platform; confirm completion (./(), hover, go-to-definition, and diagnostics work. (Setbloblang.server.pathto test with a local binary instead.) - Open a Bento/Warpstream YAML config — confirm Bloblang inside
bloblang:,mapping:,request_map:, etc. blocks is highlighted and gets diagnostics.