日々是好日

プログラミングについてのあれこれ、ムダ知識など

VSCode の拡張機能開発おぼえがき

完全に趣味( ˘ω˘)

翻訳元

code.visualstudio.com

  • onCommand: Activation Event
    • onCommand:extension.helloWorld
    • ユーザがHello Worldコマンドを実行したときにactivate
  • contributes.commands: Contribution Point
    • コマンドパレットにコマンドを提供
    • "command": extension.helloWorldとすることで、コマンド ID を定義
    • JSON 形式でcommandがコマンド ID、titleが UI に表示される際のタイトル
  • commands.registerCommand: VS Code API

まとめると

  1. contributes.commandsにコマンド ID "command": extension.helloWorldを定義、同時にパレットに表示するためにtitleを定義
  2. コマンド実行イベントで発報するように"activationEvents{onCommand}extension.helloWorldをバインド
  3. どんな動作を実行するかをcommands.registerCommandで実装(ラムダ式が楽)

流れを確認

コマンドパレットにHello World (titleで定義された名称)が表示される

Hello Worldの実体はextension.helloWorldであり、extension.helloWorldonCommandに紐づけられているのでコマンド実行イベントが発報

commands.registerCommandでコマンド実行時の動作を実装しているので読みにいく

匿名関数(コールバック)で実装された処理を実行する