Editor support for `.bus` files
Overview
BusDK ships three .bus editor-support layers.
The first is the VS Code compatible language package. It adds file association,
syntax highlighting, and semantic tokens for shebang lines, comments, include
lines, sticky directive lines, command targets, flags, key=value
assignments, quoted strings, trailing line continuations, and common date-like
values that appear in Bus command files.
This is the primary install path for VS Code, Cursor, VSCodium, Windsurf, and
other editors that can consume VS Code extensions or .vsix packages.
The second is a Tree-sitter grammar under bus/editors/tree-sitter-bus/ for
parser-backed highlighting in editors such as Neovim and Emacs.
The third is a lightweight stdio language server at
bus/editors/vscode-bus-language/language-server.js. Editors that can launch a
custom language server can use it directly for .bus semantic tokens even when
they do not consume VS Code extensions.
Install a shipped package
If BusDK publishes the extension in a marketplace, install it there in the same
way as other editor extensions. If you receive a release artifact instead,
install the .vsix file from the editor command palette. In VS Code and Cursor
this is typically the Extensions: Install from VSIX... command.
The same .vsix artifact is the fallback distribution path for users who do
not use the Microsoft Marketplace. A BusDK release can attach the file
directly, and editors that accept local .vsix packages can install it without
extra user-side configuration.
Build the .vsix package from source
Inside the public bus repository, run:
make package-vscode-extension
That command writes a .vsix artifact into bus/bin/. Maintainers can ship
that same file to users through release assets or another downloadable channel.
The supported release surfaces are intentionally simple. The .vsix artifact
is the first-class downloadable package for VS Code, Cursor, and Windsurf, and
the same extension metadata is also validated for the Open VSX-compatible
identifier busdk.language-bus / busdk/language-bus so VSCodium-style
distribution remains aligned with the shipped package metadata.
From the bus repository root, maintainers can validate that release metadata
still matches those supported distribution paths:
make check-vscode-extension-release
What the package contains
The VS Code-compatible source lives under bus/editors/vscode-bus-language/.
BusDK keeps one canonical TextMate grammar there, packages it into the
installable .vsix artifact with an offline packager script, and ships a local
semantic-token provider plus the same stdio language-server script that other
editors can run directly.
The parser-backed Tree-sitter source lives under bus/editors/tree-sitter-bus/
with grammar.js and queries/highlights.scm. That is the intended integration
path for editors that use Tree-sitter natively.
The repository verifies these artifacts with deterministic offline checks, so shipping the extension or the parser-backed assets does not depend on users writing local editor settings by hand or on maintainers checking grammar changes manually.