Visual Studio Code 拡張機能のアクティベート activationEvents

with コメントはまだありません

Visual Studio Codeの拡張機能開発で必ずお世話になる、拡張機能をアクティベートするタイミングの制御について解説する。

今回解説する方法を使えば、プロジェクトフォルダーにREADME.mdなるファイルがあるときだけアクティベートしたり、C#ファイルを開いたときだけアクティベートしたりできる。

 

activationEventsの書き方

プロジェクトフォルダーの最上位にpackage.jsonを置き、”activationEvents”というプロパティ内に複数の条件を書く。それぞれの条件は並列に判断され、1つでも合致する条件があれば拡張機能がアクティベートされるという仕組みになっている。

 

onLanguage

任意の拡張子のファイルを開いたときに拡張機能がアクティベートされる。

記述方法としては、ファイル拡張子に対応した言語ID(csharpやtypescript)をこのように並べる。

こう書くと、C#かTypeScriptファイル(.cs or .ts)を開いたときに拡張機能がアクティベートされる。

他の言語IDはこのとおり。

  • handlebars
  • html
  • javascript
  • json
  • markdown
  • php
  • plaintext
  • razor
  • css
  • less
  • sass
  • Log
  • bat
  • clojure
  • coffeescript
  • c
  • cpp
  • dockerfile
  • fsharp
  • go
  • groovy
  • ini
  • jade
  • java
  • javascriptreact
  • csharp
  • lua
  • makefile
  • objective-c
  • perl
  • perl6
  • powershell
  • python
  • r
  • ruby
  • rust
  • shaderlab
  • shellscript
  • sql
  • swift
  • typescript
  • typescriptreact
  • vb
  • xml
  • xsl
  • yaml

 

onCommand

コマンドが呼び出されたときに初めてアクティベートされる。

例えば、”extension.sayHello”なるIDのコマンド(コマンド名は”Hello World”)が呼び出されたタイミングでアクティベートしたい時はこうなる。

visual studio code activationEvents onCommand

 

workspaceContains

特定のファイルがフォルダーに存在する場合、フォルダーを開いた時に拡張機能がアクティベートされる。

 

フォルダーオープン時に自動でウォッチを開始させる拡張機能 Blade Runner は、tasks.jsonがある時にだけ有効にしているけれど、まさにこれを使っている。

Blade Runner – Run Task When Open

 

*

Visual Studio Codeが起動した際にアクティベートしたいならこれを使う。

拡張機能のデザインとして、必要になったタイミングでアクティベートする方向性があるため、なるべくならこれは使わないようにすべきと公式レファレンスにある。

 

ちなみに他の条件と並べた場合、* が優先されて結果的に他の条件は無視される。

 

公式レファレンス

Visual Studio Code Activation Events – package.json

 

 

Visual Studio Code API コマンド編 -vscode.commands-

Visual Studio Codeのコマンドパレットでリスト(Quick Pick)を出す方法

Visual Studio Codeの拡張機能をTypeScriptで作る方法

Visual Studio Codeの拡張機能を公開する方法

Visual Studio CodeのES6用拡張機能で爆速ES6コーディング

Visual Studio CodeでTypeScriptをトランスパイルする方法

Visual Studio Code 拡張機能を使ってASP.NET 5によるWebアプリを作ってみる。

 

言語を越えて活用できる、役に立ちすぎる技術書はこちら。