Azure Data Studio キーマップ拡張機能を作成する
このチュートリアルでは、新しい Azure Data Studio 拡張機能を作成する方法について説明します。 この拡張機能では、使い慣れた SSMS キーバインドが Azure Data Studio で作成されます。
この記事では、次の方法について説明します。
- 拡張機能プロジェクトを作成する
- 拡張機能ジェネレーターをインストールする
- 拡張機能を作成する
- カスタム キーバインディングを拡張機能に追加する
- 拡張機能をテストする
- 拡張機能をパッケージ化する
- 拡張機能をマーケットプレースに公開する
前提条件
Azure Data Studio は Visual Studio Code と同じフレームワーク上に構築されるため、Azure Data Studio の拡張機能は Visual Studio Code を使用して構築されます。 開始するには、次のコンポーネントが必要です。
$PATH
にインストールされ、利用できる Node.js。 Node.js には、拡張機能ジェネレーターのインストールに使用される npm (Node.js パッケージ マネージャー) が含まれています。- 拡張機能をデバッグするための Visual Studio Code。
- The Azure Data Studio Debug 拡張機能 (任意)。 これにより、パッケージ化して Azure Data Studio にインストールしなくても拡張機能をテストできます。
- 確実に
azuredatastudio
をパスに含めます。 Windows の場合、setup.exe でAdd to Path
オプションを選択します。 Mac または Linux の場合、Azure Data Studio のコマンド パレットから [PATH 内に 'azuredatastudio' コマンドをインストールします] を実行します。
拡張機能ジェネレーターをインストールする
拡張機能作成のプロセスを簡単にするため、Yeoman を利用して拡張機能ジェネレーターを構築しました。 これをインストールするには、コマンド プロンプトで次のコードを実行します。
npm install -g yo generator-azuredatastudio
キーマップ拡張機能を作成する
拡張機能を作成するには:
次のコマンドを使用して拡張機能ジェネレーターを起動します。
yo azuredatastudio
拡張機能の種類の一覧から [新しいキーマップ] を選択します。
次の手順に従って拡張機能名を入力し (このチュートリアルでは ssmskeymap2 を使用)、説明を追加します。
前の手順を完了すると、新しいフォルダーが作成されます。 Visual Studio Code でフォルダーを開きます。これで独自のキー バインド拡張機能を作成する準備ができました。
キーボード ショートカットを追加する
ステップ 1:置換するショートカットを見つける
拡張機能を準備できたので、いくつかの SSMS キーボード ショートカット (またはキーバインド) を Azure Data Studio に追加します。 今回、Andy Mallon のチートシートと RedGate のキーボード ショートカットの一覧を参考にしています。
不足していた重要なショートカット:
- 実際の実行プランを有効にしてクエリを実行します。 これは SSMS では Ctrl + M ですが、Azure Data Studio にはバインドがありません。
- Ctrl + SHIFT + E をクエリ実行の 2 つ目の方法にします。 ユーザーからのフィードバックにより、これが不足していたことが示されました。
- ALT + F1 で
sp_help
を実行します。 Azure Data Studio でこれを追加しましたが、そのバインドは既に使用されていたため、代わりに ALT+F2 にマッピングしました。 - 全画面表示の切り替え (SHIFT + ALT + ENTER)。
- F8 で [オブジェクト エクスプローラー / サーバー ビュー] を表示します。
これらのキー バインドは簡単に見つけて置換できます。 [キーボード ショートカットを開く] を実行して Azure Data Studio で [キーボード ショートカット] タブを表示し、「query」で検索し、[Change Key binding](キー バインドの変更) を選択します。 キー バインドを変更すると、更新後のマッピングを keybindings.json ファイルで確認できます ([キーボード ショートカットを開く] を実行すると表示されます)。
手順 2:拡張機能にショートカットを追加する
拡張機能にショートカットを追加するには、(拡張機能の) package.json ファイルを開き、contributes
セクションを次のコードに置換します。
"contributes": {
"keybindings": [
{
"key": "shift+cmd+e",
"command": "runQueryKeyboardAction"
},
{
"key": "ctrl+cmd+e",
"command": "workbench.view.explorer"
},
{
"key": "alt+f1",
"command": "workbench.action.query.shortcut1"
},
{
"key": "shift+alt+enter",
"command": "workbench.action.toggleFullScreen"
},
{
"key": "f8",
"command": "workbench.view.connections"
},
{
"key": "ctrl+m",
"command": "runCurrentQueryWithActualPlanKeyboardAction"
}
]
}
拡張機能をテストする
Azure Data Studio で [PATH 内に 'azuredatastudio' コマンドをインストールします] コマンドを実行し、確実に PATH に azuredatastudio
が含まれているようにします。
Azure Data Studio Debug 拡張機能を、確実に Visual Studio Code にインストールします。
F5 を選択すると、Azure Data Studio がデバッグ モードで起動し、拡張機能が実行されます。
キー マップは、最も簡単に作成できる拡張機能の 1 つです。新しい拡張機能は正常に動作し、共有できるはずです。
拡張機能をパッケージ化する
他者と共有するには、拡張機能を 1 つのファイルにパッケージ化する必要があります。 ファイルは Azure Data Studio 拡張機能マーケットプレースに公開するか、チームやコミュニティで共有できます。 それを行うには、別の npm パッケージをコマンド ラインからインストールする必要があります。
npm install -g vsce
拡張機能のベース ディレクトリに移動し、vsce package
を実行します。 vsce ツールからの不満を解消する目的で余計な行をいくつか追加する必要がありました。
"repository": {
"type": "git",
"url": "https://github.com/kevcunnane/ssmskeymap.git"
},
"bugs": {
"url": "https://github.com/kevcunnane/ssmskeymap/issues"
},
それが完了したとき、ssmskeymap-0.1.0.vsix ファイルが作成され、インストールし、世界中の人と共有する準備ができました。
拡張機能をマーケットプレースに公開する
Azure Data Studio 拡張機能マーケットプレースはまだ完成していません。現行のプロセスでは、拡張機能 VSIX をどこか (GitHub リリース ページなど) でホストしてから、こちらの JSON ファイルをご自分の拡張機能情報で更新する PR を送信します。
次のステップ
このチュートリアルでは、以下の内容を学習しました。
- 拡張機能プロジェクトを作成する
- 拡張機能ジェネレーターをインストールする
- 拡張機能を作成する
- カスタム キーバインディングを拡張機能に追加する
- 拡張機能をテストする
- 拡張機能をパッケージ化する
- 拡張機能をマーケットプレースに公開する
読了後、Azure Data Studio の拡張機能を自分でも作るべく奮起していただけたら幸いです。 Dashboard Insights (SQL Server に対して実行される美麗なグラフ)、さまざまな SQL 固有 API、Visual Studio Code から継承された大量の既存の拡張ポイント セットをサポートしています。
アイデアはあるが、どのように始めたらいいのかわからない場合は、お問い合わせいただくか、チーム宛てにツイートしてください (azuredatastudio)。
Visual Studio Code 拡張ガイドでは、既存の API やパターンがすべて取り上げられているので、いつでも参考にできます。
Azure Data Studio で T-SQL を使用する方法については、T-SQL エディターのチュートリアルを完了してください。