Skip to content
| Marketplace
Sign in
Visual Studio Code>Programming Languages>TermNew to Visual Studio Code? Get it now.
Term

Term

ClueSurf

| (0) | Free
Syntax highlighting and the language server for Term .tree files
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

Term for VS Code

The one VS Code extension for Term. It carries the .tree syntax highlighting, the Term language server (diagnostics, hover, completion, go-to-definition, references, rename, document symbols, code actions, code lens, inlay hints, semantic tokens), and a .tree file icon.

It replaced deck/tree-code (cluesurf.tree-code, "TreeCode") on 2026-10-02. That extension shipped the same grammars and nothing else. Its icon and its icon theme now live here under view/.

The extension's identifier is cluesurf.term-code, and its client id is term, so its settings sit under term.*. It was cluesurf.seed-language with settings under seed.* until 2026-10-02. The new name is a new Marketplace listing, so an installed seed-language does not update into it: uninstall that one too.

What it contributes

piece file
the tree language, .tree files package.json contributes.languages
comments, brackets, auto-closing, off-side folding, word pattern text/bind.json
the TextMate grammar, scope source.tree text/tree.json
highlighting inside fenced tree blocks in markdown text/mark.json
the marketplace icon view/tree.png, drawn from view/tree.svg by pnpm view
the Tree file icon theme, opt-in view/view.json
the client code/extension.ts, bundled to make/extension.js
the server code/main.ts, bundled to make/server.js

The grammar names no keywords. Every head is colored by position, so a retired word (wave, bust, send kink, mark async) is not singled out. The coloring by meaning comes from the server's semantic tokens.

Develop

# --ignore-workspace is required: this folder sits under the term monorepo's
# pnpm-workspace.yaml, and without the flag pnpm installs that workspace instead
# of this extension's own dependencies.
pnpm install --ignore-workspace   # vscode-languageclient, esbuild, @vscode/vsce, types
pnpm build                        # bundles make/extension.js + make/server.js

Then open this folder in VS Code and press F5 (Run Term Extension). A second "Extension Development Host" window opens with the extension loaded. Open any .tree file to see highlighting and live diagnostics.

pnpm build and re-launch (or run the build watch) after editing the client or the server.

Package and publish

pnpm dock         # vsce login cluesurf   (one-time auth)
pnpm make         # vsce package          -> make/term-code.vsix
pnpm bind         # install make/term-code.vsix into VS Code
pnpm toss         # uninstall it
pnpm host         # vsce publish

Install locally

After a change to the client, the server or the grammar:

pnpm make
pnpm bind

Then run "Developer: Reload Window".

After a change to an icon or to package.json, uninstall first. VS Code keeps the extension it scanned, icon paths and all, until it restarts, so a reinstall at the same version is not reread by a reload:

pnpm toss

Then run "Developer: Reload Window", then:

pnpm make
pnpm bind

And reload again.

Anyone with cluesurf.tree-code installed should uninstall it. Both register the tree language and the same grammar scope, so keeping both loads the grammar twice.

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
  • Your Privacy Choices
  • Consumer Health Privacy
© 2026 Microsoft