提案されている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>"]
}