Bloblang for VSCode
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
.blobl files, via a TextMate grammar
derived from the blobl_sitter
tree-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 .blobl files 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
.blobl file — confirm keywords, strings, $vars, @metadata, and
builtin calls are highlighted.
- On first activation the extension downloads
blobl_lsp for your platform;
confirm completion (./(), hover, go-to-definition, and diagnostics work.
(Set bloblang.server.path to 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.