A CLI and JavaScript framework for building VSCode extensions.
Warning
This is still a work in progress. Expect partially-implemented functionality. More features will be added in the future.
- 📕 Write TextMate grammars and product icon themes with TypeScript
- 🎨 Define palettes and reusable variables for color themes
- ⭐ Easily generate SVG fonts suitable for product icon themes
- 🔧 Configuration-based build process
- 📦 Package extensions into
.vsixbundles. High-performance replacement forvsce
npm install vsxtools
vsxtools <command># Or use npx
npx vsxtools <command>For documentation, see the GitHub wiki.
vsxtools can be configured using a vsxtools.config.ts/js file in your extension folder.
import{defineConfig}from'vsxtools'exportdefaultdefineConfig({configurations: {// Create a color theme with vsxtoolsdefault: {type: 'color-theme',inputs: ['./src/my-color-theme.json'],outputDir: './themes',name: 'My Theme',id: 'my-theme',},// More configurations can be added here...},})To run a specific configuration, run:
vsxtools run <configuration-name>vsxtools can package extensions similar to vsce pack, but much faster.
vsxtools pack [path]You don't even need a configuration. Just run vsxtools in your current directory.
npx vsxtools packvsxtools is already being used in my personal projects, including my VSCode themes
- Add a command to generate extension manifests
- Allow running/building products in a single command without a config file
Bun is required:
# Clone the repo
git clone https://github.com/ProCode-Software/vsxtools
cd vsxtools
# Install dependencies
bun install
bun vsxtools # Run the CLI
bun build # Build
bun link # Add vsxtools to PATH