mobile wallpaper 1mobile wallpaper 2mobile wallpaper 3mobile wallpaper 4
1375 文字
4 分
VS Codeプラグイン開発入門
2025-03-13

開発環境#

  1. Nodejs

  2. vscode

  3. Yeoman&generator-code

    拡張機能プロジェクトの基本構成を簡単に生成するために、Yeoman と VSCode 公式の拡張機能ジェネレーターを使用できます。ターミナルを開き、以下のコマンドを入力してグローバルインストールします:

    npm install -g yo generator-code

拡張機能の初期フレームワーク#

拡張機能の作成#

yo code

ジェネレーターから以下の質問が表示されます:

- **拡張機能の種類を選択**:たとえば「New Extension (TypeScript)」または「New Extension (JavaScript)」。
- **拡張機能の名前、説明**:案内に従って、希望する拡張機能の名前と説明を入力します。
- **Git の初期化**:Git リポジトリを初期化するかどうか。
- **パッケージマネージャー**:npm または yarn のどちらを使用するか選択します。

生成が完了すると、基本構成が整ったプロジェクトが作成されます。

構成を理解する#

生成されたプロジェクトを開くと、いくつかの重要なファイルとディレクトリがあります:

  • package.json

    このファイルでは、拡張機能の基本情報、依存関係、VSCode のアクティベーションイベント、コマンド登録を定義します。

    例:

    {
    "name": "my-sample-extension",
    "displayName": "My Sample Extension",
    "description": "A simple VSCode extension.",
    "version": "0.0.1",
    "engines": {
    "vscode": "^1.60.0"
    },
    "activationEvents": [
    "onCommand:extension.helloWorld"
    ],
    "main": "./out/extension.js",
    "contributes": {
    "commands": [
    {
    "command": "extension.helloWorld",
    "title": "Hello World"
    }
    ]
    },
    "scripts": {
    "vscode:prepublish": "npm run compile",
    "compile": "tsc -p ./"
    },
    "devDependencies": {
    "typescript": "^4.0.0",
    "vscode": "^1.1.37",
    "@types/node": "^12.0.0"
    }
    }
  • src/extension.ts****(または extension.js

    これは拡張機能のエントリーファイルであり、拡張機能がアクティブ化されると、ここに記述されたコードが実行されます。

    簡単な例:

    import * as vscode from 'vscode';
    export function activate(context: vscode.ExtensionContext) {
    console.log('Congratulations, your extension "my-sample-extension" is now active!');
    let disposable = vscode.commands.registerCommand('extension.helloWorld', () => {
    vscode.window.showInformationMessage('Hello World from your VSCode extension!');
    });
    context.subscriptions.push(disposable);
    }
    export function deactivate() {}

実行とデバッグ#

  • プロジェクトを開くと、VSCode のデバッグパネルに Launch Extension という構成が表示されます。
  •  F5 を押すと、VSCode が新しい拡張機能開発ホスト(Extension Development Host)を起動します。
  • 新しいウィンドウで、コマンドパレット(Ctrl+Shift+P または Cmd+Shift+P)から登録したコマンドを入力します。たとえば「Hello World」と入力して、拡張機能が正常に動作するかテストします。

拡張機能の公開#

開発とテストが完了したら、他のユーザーが利用できるように、拡張機能を VSCode Marketplace に公開できます:

  • 拡張機能のパッケージ化と公開を行うために、 vsce ツールをインストールします:

    npm install -g vsce
  • プロジェクトのルートディレクトリでパッケージ化コマンドを実行します:

    vsce package
  •  公式ドキュメント の案内に従って、公開手続きを完了します。

実際の開発#

拡張機能の起動#

VSCode 拡張機能では、package.json 内の activationEvents 配列によって、拡張機能をアクティブ化するタイミングを定義します。主なアクティベーションイベントの種類は以下のとおりです:

よく使用されるアクティベーションイベント#

- VSCode の起動時に拡張機能を即座にアクティブ化します
- メリット:拡張機能を常に利用できます
- デメリット:VSCode の起動パフォーマンスに影響するため、本番環境での使用は推奨されません

2. onStartupFinished -  VSCode の起動完了後に拡張機能をアクティブ化します -  * より少し遅くアクティブ化されますが、起動パフォーマンスへの影響は小さくなります 3. onCommand - ユーザーが特定のコマンドを実行したときに拡張機能をアクティブ化します - 例:onCommand.helloWorld 4. onLanguage - 特定の言語のファイルを開いたときに拡張機能をアクティブ化します - 例:onLanguage, onLanguage 5. onView - 特定のビューが表示されたときに拡張機能をアクティブ化します - 例:onView

その他のアクティベーションイベント#

  1. onUri
  2. onWebviewPanel
    • 特定の種類の webview パネルが作成されたときに拡張機能をアクティブ化します
  3. onCustomEditor
    • カスタムエディターを開いたときに拡張機能をアクティブ化します
  4. onDebug
    • デバッグセッションを開始したときに拡張機能をアクティブ化します
  5. onDebugInitialConfigurations
    • デバッグ構成を初期化するときに拡張機能をアクティブ化します
  6. onDebugResolve
    • 特定の種類のデバッグ構成を解決するときに拡張機能をアクティブ化します
  7. onFileSystem
    • 特定のファイルシステムスキームにアクセスしたときに拡張機能をアクティブ化します
    • 例:onFileSystem
  8. onTerminalProfile
    • 特定のターミナルプロファイルを作成したときに拡張機能をアクティブ化します
  9. onAuthenticationRequest
    • 特定の認証プロバイダーが要求されたときに拡張機能をアクティブ化します
  10. onSearch
    • 検索操作を実行したときに拡張機能をアクティブ化します
  11. onTaskType
    • 特定の種類のタスクを実行したときに拡張機能をアクティブ化します
  12. onNotebook
    • 特定の種類のノートブックを開いたときに拡張機能をアクティブ化します
  13. onTerminal
    • ターミナルを作成したときに拡張機能をアクティブ化します
共有

この記事が役に立ったときは、ぜひ他の人に共有してください!

VS Codeプラグイン開発入門
https://dreaife.tokyo/jp/posts/vscode-plugin-dev/
著者
dreaife
公開日
2025-03-13
ライセンス
CC BY-NC-SA 4.0

一部の情報は古い可能性があります

目次