本站点文档内容均翻译自code.visualstudio.com,仅供个人学习,如有差异请以官网为准。

使用提议的API

在Visual Studio Code,我们非常重视扩展API的兼容性。我们会尽最大努力避免破坏API的更改,扩展作者可以期望已发布的扩展继续正常工作。然而,这给我们带来了很大的限制:一旦我们引入一个API,我们就无法轻松更改它。

提议的API为我们解决了问题。提议的API是一组在VS Code中实现但未作为稳定API向公众暴露的不稳定API。它们可能会更改仅在Insiders版本中可用,并且不能在发布的扩展中使用。尽管如此,扩展作者仍可以在本地开发中测试这些新API,并为VS Code团队提供API迭代的反馈。最终,提议的API会成为稳定API的一部分,并向所有扩展开放。

使用提议的API

以下是测试提议的 API 在本地扩展开发中的步骤:

@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安装菜单项在下面的短视频中展示。

演示展示了用户进入扩展视图以查找“从 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>"]
}