vscode-extension
Use when developing VSCode extensions - covers language support, LSP integration, and packaging
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
メニュー
Use when developing VSCode extensions - covers language support, LSP integration, and packaging
Codex または Claude でインストール この Prompt をコピーして Codex、Claude、または他のアシスタントに貼り付けると、Skill ページを確認してインストールできます。
SOC 職業分類に基づく
Use when configuring ESLint - covers flat config, TypeScript integration, and custom rules
Use when creating GitHub Actions workflows - covers CI/CD, matrix testing, and release automation
Use when writing Jest tests - covers testing patterns for interpreters, parsers, and async code
Use when designing language features - covers lexer, parser, AST, and interpreter patterns
Use when implementing Language Server Protocol features - covers completions, hover, diagnostics, and navigation
Use when creating Mermaid diagrams - covers flowcharts, sequence diagrams, and AST visualization
| name | vscode-extension |
| description | Use when developing VSCode extensions - covers language support, LSP integration, and packaging |
// package.json
{
"name": "vscode-lea",
"displayName": "Lea Language",
"engines": { "vscode": "^1.85.0" },
"categories": ["Programming Languages"],
"contributes": {
"languages": [{
"id": "lea",
"extensions": [".lea"],
"configuration": "./language-configuration.json"
}],
"grammars": [{
"language": "lea",
"scopeName": "source.lea",
"path": "./syntaxes/lea.tmLanguage.json"
}]
}
}
// language-configuration.json
{
"comments": { "lineComment": "--" },
"brackets": [
["{", "}"],
["[", "]"],
["(", ")"]
],
"autoClosingPairs": [
{ "open": "{", "close": "}" },
{ "open": "[", "close": "]" },
{ "open": "(", "close": ")" },
{ "open": "\"", "close": "\"" }
],
"surroundingPairs": [
["{", "}"],
["[", "]"],
["(", ")"],
["\"", "\""]
]
}
import {
LanguageClient,
LanguageClientOptions,
ServerOptions,
} from "vscode-languageclient/node";
export function activate(context: vscode.ExtensionContext) {
const serverModule = context.asAbsolutePath("server/index.js");
const serverOptions: ServerOptions = {
run: { module: serverModule, transport: TransportKind.ipc },
debug: { module: serverModule, transport: TransportKind.ipc }
};
const clientOptions: LanguageClientOptions = {
documentSelector: [{ scheme: "file", language: "lea" }],
};
const client = new LanguageClient("lea", "Lea", serverOptions, clientOptions);
client.start();
}
// snippets/lea.json
{
"Function": {
"prefix": "fn",
"body": ["let ${1:name} = (${2:params}) -> ${0:body}"],
"description": "Define a function"
},
"Pipeline": {
"prefix": "pipe",
"body": ["${1:value}", " /> ${2:transform}", " /> ${0:result}"],
"description": "Create a pipeline"
}
}
# Install vsce
npm install -g @vscode/vsce
# Package extension
vsce package
# Publish to marketplace
vsce publish