UXガイドライン
これらのガイドラインでは、VS Code のネイティブインターフェースとパターンにシームレスに統合する拡張機能を作成するためのベストプラクティスについて説明します。このガイドラインでは、以下の内容を取り上げています。
- VS Code の UI アーキテクチャと要素の概要
- 拡張機能によって提供される UI の推奨事項と例
- 関連するガイドとサンプルへのリンク
詳細に入る前に、VS Code のさまざまな UI アーキテクチャ部分がどのように組み合わさっているか、そして拡張機能がどこにどのように貢献できるかを理解することが重要です。
コンテナー
VS Code のインターフェースは、大きく分けて **コンテナー** と **アイテム** の 2 つの主要な概念に分けられます。一般的に言って、コンテナーは、1 つ以上のアイテムをレンダリングする VS Code インターフェースのより大きなセクションと考えることができます。
アクティビティバー
アクティビティバーは、VS Code の主要なナビゲーションサーフェスです。拡張機能は、プライマリサイドバーにビューをレンダリングするビューコンテナーとして機能するアイテムをアクティビティバーに追加できます。
プライマリサイドバー
プライマリサイドバーは、1 つ以上のビューをレンダリングします。アクティビティバーとプライマリサイドバーは密接に連携しています。コントリビューションされたアクティビティバーアイテム(ビューコンテナー)をクリックすると、プライマリサイドバーが開き、そのビューコンテナーに関連付けられた 1 つ以上のビューがレンダリングされます。具体的な例としては、エクスプローラーがあります。エクスプローラーアイテムをクリックすると、プライマリサイドバーが開き、フォルダー、タイムライン、アウトラインビューが表示されます。
セカンダリサイドバー
セカンダリサイドバーも、ビューコンテナーとビューをレンダリングするためのサーフェスとして機能します。ユーザーは、ターミナルや問題ビューなどのビューをセカンダリサイドバーにドラッグして、レイアウトをカスタマイズできます。
エディター
エディター領域には、1 つ以上のエディターグループが含まれています。拡張機能は、カスタムエディターまたは Webview をコントリビューションして、エディター領域で開くことができます。また、エディターアクションをコントリビューションして、エディタツールバーに追加のアイコンボタンを表示することもできます。
パネル
パネルは、ビューコンテナーを表示するための別の領域です。デフォルトでは、ターミナル、問題、出力などのビューは、パネル内で一度に 1 つのタブで表示できます。ユーザーは、エディターで行うように、ビューを分割レイアウトにドラッグすることもできます。さらに、拡張機能は、アクティビティバー/プライマリサイドバーの代わりに、パネルにビューコンテナーを個別に追加することもできます。
ステータスバー
ステータスバーは、ワークスペースと現在アクティブなファイルに関するコンテキスト情報を提供します。ステータスバーアイテムの 2 つのグループをレンダリングします。
アイテム
拡張機能は、上記にリストされたさまざまなコンテナーにアイテムを追加できます。
ビュー
ビューは、ツリービュー、ウェルカムビュー、または Webview ビューの形式でコントリビューションでき、インターフェースの他の領域にドラッグできます。
ビュツールバー
拡張機能は、ビュツールバーにボタンとして表示されるビュー固有のアクションを公開できます。
サイドバーツールバー
ビューコンテナー全体にスコープされたアクションは、サイドバーツールバーにも公開できます。
エディタツールバー
拡張機能は、エディターにスコープされたエディターアクションをエディタツールバーに直接コントリビューションできます。
パネルツールバー
パネルツールバーは、現在選択されているビューにスコープされたオプションを公開できます。たとえば、ターミナルビューは、新しいターミナルの追加、ビューレイアウトの分割などのアクションを公開します。問題ビューに切り替えると、異なるアクションセットが公開されます。
ステータスバーアイテム
左側のステータスバーアイテムは、ワークスペース全体にスコープされています。右側のアイテムは、アクティブなファイルにスコープされています。
共通 UI 要素
コマンドパレット
拡張機能は、コマンドパレットに表示されるコマンドをコントリビューションして、特定の機能をすばやく実行できます。
クイックピッカー
クイックピッカーは、ユーザーの入力をいくつかの異なる方法でキャプチャします。単一選択、複数選択、またはフリーフォームテキスト入力を要求できます。
通知
通知は、情報、警告、およびエラーメッセージをユーザーに伝えるために使用されます。進捗状況を示すためにも使用できます。
Webview
Webview は、VS Code の「ネイティブ」API を超えるユースケースのために、カスタムコンテンツと機能をdisplayするために使用できます。
コンテキストメニュー
コマンドパレットの一貫した場所とは対照的に、コンテキストメニューを使用すると、ユーザーは特定の位置からアクションを実行したり、何かを構成したりできます。
ウォークスルー
ウォークスルーは、豊富なコンテンツを備えた複数ステップのチェックリストを介して、ユーザーを拡張機能にオンボーディングするための一貫したエクスペリエンスを提供します。
設定
設定により、ユーザーは拡張機能に関連するオプションを構成できます。