Skip to content

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Repository files navigation

VS Code Extensions

A monorepo of VS Code extensions. Most of them pair a thin TypeScript client with a Rust engine compiled to WebAssembly, so parsing, analysis and rendering run inside the extension host with no native binaries to install.

Each extension has its own README with the full feature list and settings.

Extensions

Languages

Extension What it does
Typst Ultra Typst language server and live, two-way-synced preview on unmodified upstream typst; PDF/SVG/PNG/TIFF export and BibTeX support
Typst Ultra Fonts Typst's default font set, packaged for Typst Ultra
WGSL / GLSL Shader Language server for WGSL (validated by naga) and GLSL, including shaders embedded in Rust and TypeScript
FAST Element Ultra Diagnostics, completion, hover, navigation and rename inside FAST Element html and css tagged templates
Protocol Buffers (proto3) Highlighting, outline and diagnostics for .proto files
Cap'n Proto Ultra Highlighting, outline and diagnostics for .capnp schemas
Mojom IDL Ultra Highlighting, outline, navigation and diagnostics for .mojom files
JSON Ultra JSON, JSONC, JSON5 and JSON Lines: diagnostics, comment-preserving formatting, JSON-path hovers, a JSON Lines table preview
dotenv (.env) Highlighting, diagnostics, formatting and variable completion for .env files
Makefile Highlighting and outline for GNU Make
cargo-make (Makefile.toml) Highlighting, outline, completion, hover and diagnostics for Makefile.toml
Diesel schema.rs Outline, hover, completion and diagnostics for Diesel schema.rs files
Askama Templates Highlighting and snippets for Askama templates

Viewers and editors

Extension What it does
Markdown Preview Ultra Live Markdown preview with math, mermaid, GitHub alerts, a TOC and two-way scroll sync
PDF Ultra PDF viewer built on pdf.js, with find, outline, zoom and live reload
CSV Ultra CSV and TSV as an editable, sortable spreadsheet, plus rainbow columns in the text editor
Log Viewer Ultra Viewer for large .log files with ANSI colour rendering
Vim Ultra Modal Vim editing: motions, operators, text objects, registers, visual modes, search and :s

Tools

Extension What it does
Git Compare Compare the working copy with any branch, tag or commit as a file tree in Source Control
Cloudflare AI Models Use Cloudflare Workers AI and AI Gateway models as chat models in VS Code
Claude Usage Ultra Claude Code plan usage and reset countdowns in the status bar
Gitignore Generator Ultra Generate or extend .gitignore from bundled templates
Base64 Tools Base64-encode and -decode the selected text
Remove .cc-writes Clean up empty .cc-writes directories left in a workspace

Installing

The extensions are not on the Marketplace. Build a .vsix (see below), then install it with Extensions: Install from VSIX… or:

code --install-extension extensions/<name>/wx-vsce-<name>-<version>.vsix

Building

Prerequisites

  • Node.js 20.19 or later
  • pnpm, through corepack: corepack enable picks up the version pinned in package.json
  • Rust (stable) with the WebAssembly target: rustup target add wasm32-unknown-unknown
  • wasm-pack: cargo install wasm-pack

Or open the repo in the dev container under .devcontainer, which has all of this installed.

Commands

pnpm install

# Package one extension; the result lands in extensions/<name>/
pnpm --filter wx-vsce-<name> package

# Or work on one extension step by step
pnpm --filter wx-vsce-<name> build:wasm   # Rust engine → extensions/<name>/wasm/ (Rust-backed extensions only)
pnpm --filter wx-vsce-<name> build        # TypeScript → dist/
pnpm --filter wx-vsce-<name> test

# Across the whole repo
pnpm typecheck
pnpm test
cargo test --workspace

build does not run build:wasm, so run it first for a Rust-backed extension. package runs both.

Publishing

pnpm repo publish uploads each extension's packaged .vsix to the VS Code Marketplace, skipping versions already there. Bump what changed first, then package and publish in one step:

pnpm bump -f <name>
VSCE_PAT=<token> pnpm repo publish --build -f <name>   # --dry-run to preview

pnpm repo publish --help covers the options and where the token comes from.

Some extensions have a CONTRIBUTING.md with more detail, such as extra data sources or how to regenerate their notices.

Repository layout

Path Holds
extensions/ One folder per extension: TypeScript sources, grammars, package.json
crates/ The Rust engines. Crates used by one extension are grouped in a folder named after it, such as crates/typst and crates/wgsl-shader
scripts/ Repo maintenance commands (pnpm repo), such as version bumps. See scripts/README.md
docs/rfc/ Design documents for the larger extensions

License

MIT, with two exceptions:

  • Makefile is GPL-2.0-or-later as a whole, because its binary embeds completion data from fish-shell, which is GPL-2.0-or-later.
  • Typst Ultra Fonts is nothing but typst's bundled fonts, each under its own license (OFL, GUST, Bitstream Vera and others).

Each extension's LICENSE.md states its terms, and the third-party material it redistributes is listed there or in its THIRD-PARTY-NOTICES.md.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages