Features
🎨 Syntax highlighting
Full TextMate grammar covering keywords, strings (single & double quoted), numbers, both comment styles (# and //), class and function declarations, built-in functions, constants, and operators.
💡 Completions
- Keywords —
let, fn, class, if, for, while, return, import, …
- Built-in functions — with signatures and inline documentation.
- Type methods —
.-completions for string / list / dict methods (upper, push, keys, …).
- Local symbols — functions, classes,
let variables, parameters, and loop variables declared in the current file.
📖 Hovers
Hover any built-in function to see its signature and a short description.
✂️ Snippets
Tab-completable snippets for common constructs:
| Prefix |
Expands to |
fn |
function declaration |
class / classext |
class / class with extends |
for / forc |
for … in / C-style for |
while |
while loop |
if / ifelse |
conditional blocks |
let |
variable declaration |
print |
print statement |
import / from |
module imports |
⚙️ Editing conveniences
Auto-closing brackets and quotes, comment toggling (Ctrl + /), and sensible auto-indentation.
🐝 File icons
.be and .bee files get a bee icon in the Explorer (with a file-icon theme that shows language icons, such as the default Seti theme).
Installation
From a released .vsix
Download the .vsix from the latest release and install it:
code --install-extension bee-0.1.1.vsix
From source
Copy the repository into your VS Code extensions folder and reload:
git clone https://github.com/beelang-project/vscode-bee.git \
~/.vscode/extensions/bee-0.1.1
Then reload the window (Command Palette → Developer: Reload Window). Open any
.be / .bee file and language support activates automatically.
On Windows, clone into %USERPROFILE%\.vscode\extensions\bee-0.1.1.
Develop it (Extension Development Host)
code .
Press F5 to launch a second VS Code window with the extension loaded — ideal
for hacking on the grammar or providers.
Package a .vsix yourself (needs Node)
npm install -g @vscode/vsce
vsce package # → bee-0.1.1.vsix
code --install-extension bee-0.1.1.vsix
Requirements
The extension is pure editor tooling — it does not bundle the interpreter. To
run programs, install the bee interpreter from the
BeeLang repository so you can:
bee path/to/script.bee
Known limitations
- Method completion after
. lists the union of string / list / dict methods —
the extension does no type inference, so pick the one that fits your value.
- Symbol completion is a lightweight regex scan of the open file, not a full
parse. It favors being helpful over being exhaustive.
- Highlighting needs no activation; completions and hovers activate on the first
.be / .bee file you open.
- BeeLang 0.2.0's
f"..." interpolated strings and slice syntax aren't
highlighted yet.
Project structure
| File |
Purpose |
package.json |
Extension manifest (language, grammar, snippets, icons) |
language-configuration.json |
Brackets, comments, auto-closing, indentation |
syntaxes/bee.tmLanguage.json |
TextMate grammar (highlighting) |
extension.js |
Completion & hover providers |
snippets/bee.json |
Code snippets |
icons/ |
Language / file icons |
No build step — the extension is plain JavaScript.
Releasing
The extension is versioned independently of the interpreter. The tag must match
version in package.json exactly — the workflow fails the build if they
disagree, rather than shipping a .vsix whose filename contradicts its
contents. So bump the manifest first, then tag what it says:
# 1. edit "version" in package.json, e.g. to 0.1.1
# 2. tag exactly that version:
v=$(node -p "require('./package.json').version")
git commit -am "Release $v"
git tag "v$v" && git push origin main "v$v"
.github/workflows/release.yml then packages
the .vsix, and attaches it to a GitHub Release. It also publishes to the
Marketplace once a VSCE_PAT secret is configured.
License
MIT © 2026 Atanu Debnath. Part of the
BeeLang project.