Agent Skillslawve-ai/awesome-legal-skills › vscode-extension-builder-lawvable

vscode-extension-builder-lawvable

GitHub

用于从零构建 VS Code 扩展或将现有 Web 应用(JS/React/Vue)转换为扩展。支持命令、Webview、自定义编辑器、树视图及 AI 代理集成,提供模板与转换指南。

skills/vscode-extension-builder-lawvable/SKILL.md lawve-ai/awesome-legal-skills

Trigger Scenarios

创建 VS Code 扩展 将 Web 应用转为扩展 添加 Webview 或自定义 UI 实现树视图 构建自定义文件编辑器 集成 AI 代理 打包发布扩展

Install

npx skills add lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -g -y
More Options

Use without installing

npx skills use lawve-ai/awesome-legal-skills@vscode-extension-builder-lawvable

指定 Agent (Claude Code)

npx skills add lawve-ai/awesome-legal-skills --skill vscode-extension-builder-lawvable -a claude-code -g -y

安装 repo 全部 skill

npx skills add lawve-ai/awesome-legal-skills --all -g -y

预览 repo 内 skill

npx skills add lawve-ai/awesome-legal-skills --list

SKILL.md

Frontmatter
{
    "name": "vscode-extension-builder-lawvable",
    "metadata": {
        "author": "Antoine Louis (Lawvable)",
        "license": "AGPL-3.0",
        "version": "2026.02.04"
    },
    "description": "Build VS Code extensions from scratch or convert existing JS\/React\/Vue apps. Supports commands, webviews (React\/Vue), custom editors, tree views, and AI agent integration via file-bridge IPC. Use when user wants to create a VS Code extension, convert a web app to an extension, add webviews or custom UIs to VS Code, implement tree views, build custom file editors, integrate with AI agents, or package\/publish extensions (.vsix)."
}

VS Code Extension

Build VS Code extensions from scratch or convert existing web apps into portable, shareable extensions.

Architecture

VS Code extensions run in two contexts:

  1. Extension Host (Node.js) — Backend logic, file access, VS Code APIs
  2. Webviews (browser sandbox) — Custom UIs with HTML/CSS/JS (React, Vue, vanilla)

Build stack: TypeScript + esbuild (extension) + Vite (webviews)

Quick Start

  1. Choose a template from assets/ based on your needs (see decision tree below)
  2. Copy the template to your project directory
  3. Update package.json: name, displayName, publisher, description
  4. Run npm install then npm run build
  5. Press F5 in VS Code to launch Extension Development Host

Template Decision Tree

Need Template
Simple command/action assets/basic-command/
Custom UI panel (React) assets/webview-react/
Sidebar file tree assets/tree-view/
Custom file editor assets/custom-editor/
AI agent integration assets/file-bridge/

Extension Types

Commands

Register actions triggered via Command Palette, keyboard shortcuts, or menus.

vscode.commands.registerCommand('myExt.doSomething', () => {
  vscode.window.showInformationMessage('Done!');
});

See references/api-reference.md for common APIs.

Webviews

Full HTML/CSS/JS UIs in panels or sidebar. Use React for complex interfaces.

const panel = vscode.window.createWebviewPanel(
  'myView', 'My Panel', vscode.ViewColumn.One,
  { enableScripts: true }
);
panel.webview.html = getWebviewContent();

See references/webview-patterns.md for React setup, messaging, and CSP.

Tree Views

Hierarchical data in the sidebar (file explorers, outlines, lists).

vscode.window.registerTreeDataProvider('myTreeView', new MyTreeProvider());

See references/tree-view-patterns.md for TreeDataProvider patterns.

Custom Editors

Replace the default editor for specific file types.

vscode.window.registerCustomEditorProvider('myExt.myEditor', new MyEditorProvider());

See references/custom-editor-patterns.md for document sync and undo/redo.

Converting Existing Apps

To convert a JS/React/Vue app into an extension:

  1. Assess — What does the app do? What VS Code features does it need?
  2. Map APIs — Replace web APIs with VS Code equivalents
  3. Restructure — Move UI into webview, logic into extension host
  4. Connect — Wire up postMessage communication
Web API VS Code Equivalent
localStorage context.globalState / context.workspaceState
fetch() vscode.workspace.fs or keep fetch for external APIs
Router Multiple webview panels or sidebar views
alert() vscode.window.showInformationMessage()
prompt() vscode.window.showInputBox()
confirm() vscode.window.showWarningMessage() with options

See references/conversion-guide.md for detailed step-by-step process.

Build System

Extension code — Use esbuild (fast, simple):

// esbuild.js
esbuild.build({
  entryPoints: ['src/extension.ts'],
  bundle: true,
  outfile: 'dist/extension.js',
  external: ['vscode'],
  format: 'cjs',
  platform: 'node',
});

Webview code — Use Vite (HMR, React support):

// vite.config.ts
export default defineConfig({
  build: {
    outDir: '../dist/webview',
    rollupOptions: { output: { entryFileNames: '[name].js' } }
  }
});

See references/build-config.md for complete configurations.

package.json Manifest

Essential fields:

{
  "name": "my-extension",
  "displayName": "My Extension",
  "publisher": "your-publisher-id",
  "version": "0.0.1",
  "engines": { "vscode": "^1.85.0" },
  "main": "./dist/extension.js",
  "activationEvents": [],
  "contributes": {
    "commands": [{ "command": "myExt.hello", "title": "Hello" }]
  }
}

The contributes section defines commands, menus, views, settings, keybindings, and more.

See references/contribution-points.md for all contribution types.

IPC Patterns

Extension ↔ Webview

Use postMessage for bidirectional communication:

// Extension → Webview
panel.webview.postMessage({ type: 'update', data: {...} });

// Webview → Extension
panel.webview.onDidReceiveMessage(msg => {
  if (msg.type === 'save') { /* handle */ }
});

Extension ↔ External Tools (AI Agents)

Use file-based IPC for communication with Claude Code or other agents:

// Watch for command files
fs.watch(commandDir, (event, filename) => {
  if (filename.endsWith('.json')) {
    const command = JSON.parse(fs.readFileSync(path.join(commandDir, filename)));
    processCommand(command);
  }
});

See references/ai-integration.md for the file-bridge pattern.

Packaging & Distribution

Package as .vsix

npm install -g @vscode/vsce
vsce package

This creates my-extension-0.0.1.vsix.

.vscodeignore

Exclude unnecessary files:

.vscode/**
node_modules/**
src/**
*.ts
tsconfig.json
esbuild.js
vite.config.ts

Distribution Options

  1. Direct sharing — Send .vsix file, install via code --install-extension file.vsix
  2. VS Marketplace — Publish with vsce publish (requires Microsoft account)
  3. Open VSX — Alternative registry for open-source extensions

Platform-Specific Builds

For extensions with native dependencies:

vsce package --target win32-x64
vsce package --target darwin-arm64
vsce package --target linux-x64

Reference Files

File When to Read
api-reference.md Implementing extension features
contribution-points.md Configuring package.json contributes
webview-patterns.md Building React webviews
tree-view-patterns.md Implementing tree views
custom-editor-patterns.md Building custom file editors
build-config.md Configuring esbuild/Vite
conversion-guide.md Converting web apps
ai-integration.md Integrating with AI agents

Asset Templates

Template Description
basic-command/ Minimal extension with one command
webview-react/ React webview panel with messaging
tree-view/ Sidebar tree view with provider
custom-editor/ Custom editor for specific file types
file-bridge/ File-based IPC for AI agents

Version History

  • 7f58aaf Current 2026-07-05 11:54

Same Skill Collection

skills/agent-authority-charter-builder-arkadiy-miteiko/SKILL.md
skills/agentic-delegation-audit-adrian-lerer/SKILL.md
skills/ai-audit-trail-larissa-meredith-flister/SKILL.md
skills/assignation-refere-recouvrement-creance-selim-brihi/SKILL.md
skills/canned-response-generator-anthropic/SKILL.md
skills/canned-responses-anthropic/SKILL.md
skills/code-security-review-openai/SKILL.md
skills/compliance-anthropic/SKILL.md
skills/contract-review-anthropic/SKILL.md
skills/contract-risk-analyzer-sneha-ganapavarapu/SKILL.md
skills/cookie-policy-generator-malik-taiar/SKILL.md
skills/court-of-bih-war-crimes-chamber-jeanne-sulzer/SKILL.md
skills/data-processing-agreement-art-28-gdpr-oliver-schmidt-prietz/SKILL.md
skills/decision-ownership-audit-adrian-lerer/SKILL.md
skills/disclosure-strategy-mapper-larissa-meredith-flister/SKILL.md
skills/docx-processing-lawvable/SKILL.md
skills/docx-processing-openai/SKILL.md
skills/docx-processing-superdoc/SKILL.md
skills/dpdpa-gdpr-compliance-review-parth-desai/SKILL.md
skills/dpdpa-gdpr-review-parth-desai/SKILL.md
skills/dpia-sentinel-oliver-schmidt-prietz/SKILL.md
skills/due-diligence-gate-adrian-lerer/SKILL.md
skills/eccc-khmer-rouge-tribunal-jeanne-sulzer/SKILL.md
skills/epistemic-fault-line-audit-adrian-lerer/SKILL.md
skills/eu-ai-act-examination-report-generator-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-high-risk-classifier-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-quick-assessment-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-report-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-role-determination-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-roles-oliver-schmidt-prietz/SKILL.md
skills/eu-ai-act-triage-oliver-schmidt-prietz/SKILL.md
skills/eu-legislation-malik-taiar/SKILL.md
skills/excel-editor-openai/SKILL.md
skills/financial-comparison-glossary-adrian-lerer/SKILL.md
skills/french-text-proofreading-christophe-quezel-ambrunaz/SKILL.md
skills/icelandic-company-formation-magnus-smarason/SKILL.md
skills/icelandic-company-formation-magnus-smari-smarason/SKILL.md
skills/icelandic-contract-review-magnus-smarason/SKILL.md
skills/icelandic-contract-review-magnus-smari-smarason/SKILL.md
skills/icelandic-court-case-finder-magnus-smarason/SKILL.md
skills/icelandic-eea-gap-analysis-magnus-smarason/SKILL.md
skills/icelandic-eea-gap-analysis-magnus-smari-smarason/SKILL.md
skills/icelandic-labour-law-magnus-smarason/SKILL.md
skills/icelandic-labour-law-magnus-smari-smarason/SKILL.md
skills/icelandic-legal-terminology-magnus-smarason/SKILL.md
skills/icelandic-legal-terminology-magnus-smari-smarason/SKILL.md
skills/icelandic-privacy-review-magnus-smarason/SKILL.md
skills/icelandic-privacy-review-magnus-smari-smarason/SKILL.md
skills/icty-ictr-irmct-jeanne-sulzer/SKILL.md
skills/indian-dpdp-act-consent-notice-siddhi-kudalkar/SKILL.md

Metadata

Files
0
Version
7f58aaf
Hash
65dadcd9
Indexed
2026-07-05 11:54

trang chủ - Wiki
Copyright © 2011-2026 iteam. Current version is 2.155.2. UTC+08:00, 2026-08-02 00:12
浙ICP备14020137号-1 $bản đồ khách truy cập$