提案されている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 を使用する拡張機能を Marketplace に公開することはできませんが、拡張機能をパッケージ化して共有することで、同僚と共有することはできます。
拡張機能をパッケージ化するには、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>"]
}