VSCode の拡張機能開発おぼえがき
完全に趣味( ˘ω˘)
翻訳元
onCommand
: Activation EventonCommand:extension.helloWorld
- ユーザが
Hello World
コマンドを実行したときにactivate
contributes.commands
: Contribution Point- コマンドパレットにコマンドを提供
"command": extension.helloWorld
とすることで、コマンド ID を定義- JSON 形式で
command
がコマンド ID、title
が UI に表示される際のタイトル
commands.registerCommand
: VS Code API- VS Code API (a set of JavaScript API) は自作拡張機能から呼び出すことができる JavaScript API のセット
- 登録されたコマンド ID
extension.helloWorld
をcommands.registerCommand
で実装(ラムダ式が楽)
まとめると
contributes.commands
にコマンド ID"command": extension.helloWorld
を定義、同時にパレットに表示するためにtitle
を定義- コマンド実行イベントで発報するように
"activationEvents{onCommand}
にextension.helloWorld
をバインド - どんな動作を実行するかを
commands.registerCommand
で実装(ラムダ式が楽)
流れを確認
コマンドパレットに
Hello World (titleで定義された名称)
が表示される
↓
Hello World
の実体はextension.helloWorld
であり、extension.helloWorld
はonCommand
に紐づけられているのでコマンド実行イベントが発報
↓
commands.registerCommand
でコマンド実行時の動作を実装しているので読みにいく
↓
匿名関数(コールバック)で実装された処理を実行する