使用提议的API
在Visual Studio Code中,我们非常重视扩展API的兼容性。我们尽最大努力避免破坏API的更改,扩展作者可以期望已发布的扩展继续工作。然而,这给我们带来了很大的限制:一旦我们引入了一个API,我们就不能再轻易地更改它。
提议的API为我们解决了问题。提议的API是一组在VS Code中实现但未像稳定API那样公开给公众的不稳定API。它们可能会发生变化,仅在Insiders版本中可用,并且不能在已发布的扩展中使用。尽管如此,扩展作者可以在本地开发中测试这些新API,并为VS Code团队提供反馈以迭代API。最终,提议的API会进入稳定API,并可供所有扩展使用。
使用提议的API
这些是在本地扩展开发中测试提议的API的步骤:
- 使用 Insiders 版本的 VS Code。
- 在你的
package.json
中,添加"enabledApiProposals": ["
。"] - 将相应的vscode.proposed.
.d.ts 文件复制到项目的源代码位置。
@vscode/dts CLI 工具允许您快速下载最新的 vscode.proposed.
用于扩展开发。它会根据您 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://code.visualstudio.com/api/advanced-topics/using-proposed-api
这里有一个使用提议的API的示例:proposed-api-sample。
提议的API不兼容性
在主分支上,vscode.proposed.
始终与 vscode.d.ts
兼容。然而,当你在使用 @types/vscode
的项目中添加 vscode.proposed.
时,最新的 vscode.proposed.
可能与 @types/vscode
中的版本不兼容。
您可以通过以下任一方式解决此问题:
- 移除对
@types/vscode
的依赖,并使用npx @vscode/dts main
从microsoft/vscode
主分支下载vscode.d.ts
。 - 使用
@types/vscode@
并使用npx @vscode/dts dev
从microsoft/vscode
的旧分支下载vscode.proposed.
。但是,请注意,API 可能在最新版本的 VS Code Insiders 中已更改。.d.ts
使用提议的API共享扩展
虽然您无法在市场上使用提议的API发布扩展程序,但您仍然可以通过打包和分享您的扩展程序与同行共享。
要打包您的扩展,您可以运行vsce package
来创建扩展的VSIX文件。然后,您可以与他人共享此VSIX文件,以便在他们的VS Code中安装扩展。
要从VSIX文件安装扩展,您需要进入扩展视图,选择...省略号查看和更多操作按钮,然后选择从VSIX安装。
选择从VSIX安装菜单项在下面的短视频中展示。
对于使用提议API的扩展,还有几个步骤来启用您的扩展。从VSIX安装后,您需要退出并从命令行重新启动VS Code Insiders,使用code-insiders . --enable-proposed-api=
在您的项目文件夹中。
如果您希望设置您的扩展程序使用提议的API在每次启动VS Code Insiders时始终可用,您可以运行首选项:配置运行时参数命令来编辑.vscode-insiders/argv.json
文件,以设置启用的扩展程序列表。
{
...
"enable-proposed-api": ["<YOUR-EXTENSION-ID>"]
}