使用提议的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.<proposalName>.d.ts文件到你的项目源代码位置。
该@vscode/dts CLI 工具允许您快速下载最新的vscode.proposed.<提案名称>.d.ts用于扩展开发。它通过你在 中列出的提案下载定义文件。package.json文件。
> npx @vscode/dts dev
下载中 vscode.proposed.languageStatus.d.ts
至: /Users/Me/Code/MyExtension/vscode.proposed.languageStatus.d.ts
来自: https://raw.githubusercontent.com/microsoft/vscode/main/src/vscode-dts/vscode.proposed.languageStatus.d.ts
阅读更多关于提议的API的资料,请访问: https://code.visualstudio.com/api/advanced-topics/using-proposed-api
有一个使用提议的API的示例:proposed-api-sample.
提议的API不兼容
在主分支上,vscode.proposed.<提案名称>.d.ts总是与兼容vscode.d.ts然而,当你添加vscode.proposed.<提案>.d.ts添加到你的项目中使用@类型/vscode,最新vscode.proposed.<提案>.d.ts可能与版本不兼容@类型/vscode输入:.
您可以通过以下方法解决此问题:
- 移除对依赖
@类型/vscode并使用npx @vscode/dts main下载vscode.d.ts从微软/vscode主分支。 - 使用
@types/vscode@<版本>并且也使用npx @vscode/dts dev <版本>下载vscode.proposed.<提案>.d.ts来自一个旧分支微软/vscode然而,请小心,因为 API 可能在 VS Code Insiders 的最新版本中有所更改。
使用提议的API共享扩展
虽然您无法使用提议的 API 在市场上发布扩展,但您仍然可以通过打包和分享您的扩展与您的同行分享您的扩展。
要打包您的扩展,您可以运行vsce 包创建你的扩展的VSIX文件。然后你可以将这个VSIX文件分享给其他人,以便在他们的VS Code中安装这个扩展。
要从VSIX文件安装扩展,请进入扩展视图,选择...省略号视图和更多操作按钮,并选择从VSIX安装。
选择从VSIX安装菜单项在下面的短视频中展示。

对于使用提议 API 的扩展,需要执行一些额外步骤来启用您的扩展。安装 VSIX 后,您需要从命令行中退出并重新启动 VS Code Insiders。code-insiders --enable-proposed-api=在你的项目文件夹中。
如果您希望设置以便在 VS Code Insiders 的每次启动中都能使用使用提议 API 的扩展,请运行 偏好设置:配置运行时参数 命令来编辑 .vscode-insiders/argv.json文件用于设置启用的扩展列表。
{
...
"enable-proposed-api": ["<YOUR-EXTENSION-ID>"]
}