提案されているAPIの使用
Visual Studio Codeでは、拡張機能APIの互換性を真剣に考えています。APIの破壊的な変更を避けるために最善を尽くしており、拡張機能の作者は公開された拡張機能が引き続き動作することを期待できます。しかし、これは私たちに大きな制約を与えます。一度APIを導入すると、簡単には変更できなくなるためです。
提案されたAPIは、この問題を解決します。提案されたAPIは、VS Codeに実装されているものの、安定版APIのように一般には公開されていない、一連の不安定なAPIです。これらは変更される可能性があり、Insiders版でのみ利用可能であり、公開された拡張機能では使用できません。それにもかかわらず、拡張機能の作者はこれらの新しいAPIをローカル開発でテストし、VS CodeチームがAPIを改善するためのフィードバックを提供できます。最終的には、提案されたAPIは安定版APIに組み込まれ、すべての拡張機能で利用可能になります。
提案されたAPIの使用
以下は、ローカル拡張機能開発で提案されたAPIをテストするための手順です。
- VS CodeのInsiders版を使用します。
package.json
に"enabledApiProposals": ["<proposalName>"]
を追加します。- 対応するvscode.proposed.<proposalName>.d.tsファイルをプロジェクトのソースロケーションにコピーします。
@vscode/dts CLIユーティリティを使用すると、拡張機能開発用の最新のvscode.proposed.<proposalName>.d.ts
を素早くダウンロードできます。これは、package.json
ファイルにリストされている提案に基づいて定義ファイルをダウンロードします。
> npx @vscode/dts dev
Downloading vscode.proposed.languageStatus.d.ts
To: /Users/Me/Code/MyExtension/vscode.proposed.languageStatus.d.ts
From: https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatus.d.ts
Read more about proposed API at: https://vscode.dokyumento.jp/api/advanced-topics/using-proposed-api
提案されたAPIを使用するサンプルは次のとおりです: proposed-api-sample。
提案されたAPIの非互換性
メインブランチでは、vscode.proposed.<proposalName>.d.ts
は常にvscode.d.ts
と互換性があります。ただし、@types/vscode
を使用するプロジェクトにvscode.proposed.<proposal>.d.ts
を追加する場合、最新のvscode.proposed.<proposal>.d.ts
は@types/vscode
のバージョンと互換性がない可能性があります。
この問題は、次のいずれかの方法で解決できます。
@types/vscode
への依存関係を削除し、npx @vscode/dts main
を使用してmicrosoft/vscode
のメインブランチからvscode.d.ts
をダウンロードします。@types/vscode@<version>
を使用し、さらにnpx @vscode/dts dev <version>
を使用してmicrosoft/vscode
の古いブランチからvscode.proposed.<proposal>.d.ts
をダウンロードします。ただし、VS Code Insidersの最新バージョンではAPIが変更されている可能性があるため、注意してください。
提案されたAPIを使用する拡張機能の共有
提案されたAPIを使用する拡張機能をマーケットプレイスに公開することはできませんが、拡張機能をパッケージ化して共有することで、同僚と共有することは可能です。
拡張機能をパッケージ化するには、vsce package
を実行して拡張機能のVSIXファイルを作成します。その後、このVSIXファイルを他のユーザーと共有して、そのユーザーのVS Codeに拡張機能をインストールしてもらうことができます。
VSIXファイルから拡張機能をインストールするには、拡張機能ビューに移動し、... (三点リーダー)の「ビューとその他のアクション」ボタンを選択し、「VSIXからインストール」を選択します。
「VSIXからインストール」メニュー項目の選択は、以下の短いビデオに示されています。
提案されたAPIを使用する拡張機能の場合、拡張機能を有効にするためにさらにいくつかの手順が必要です。VSIXからインストールした後、プロジェクトフォルダー内でcode-insiders . --enable-proposed-api=<YOUR-EXTENSION-ID>
コマンドを使用して、VS Code Insidersを終了し、コマンドラインから再起動する必要があります。
提案されたAPIを使用する拡張機能がVS Code Insidersを起動するたびに常に利用できるように設定したい場合は、「基本設定: ランタイム引数の構成」コマンドを実行して.vscode-insiders/argv.json
ファイルを編集し、有効な拡張機能のリストを設定できます。
{
...
"enable-proposed-api": ["<YOUR-EXTENSION-ID>"]
}