如何测试我的扩展程序与不同VS代码版本的兼容性?

问题描述

我正在基于helloWorld tutorial构建我的第一个VS Code扩展。

首次运行yo code时,它将检测到最新版本与代码版本并填充package.json

{
  "engines": {
    "vscode": "^1.47.0"
  }
}

根据有效实施版本检查的official documentation

但是我发现非常可疑的是,最简单的示例根本没有复杂的api,将需要最新的vs代码版本。

我正在寻找一个源(或工具)来检查我在扩展程序中使用的api方法的实际版本要求,因此能够定义所需的实际引擎。

为了说明,这些是我使用的一些方法。理想情况下,我会找出每个版本的版本要求。

vscode.commands.executeCommand('editor.action.revealDeFinition') // 1.8.0
vscode.commands.executeCommand('workbench.action.acceptSelectedQuickOpenItem') // 1.43.0
vscode.window.show@R_267_4045@ionMessage() // 1.18.0

// therefore I need ^1.43.0

PS:我是否考虑得太多了,可以假设每个人都定期更新代码

解决方法

通常的方法是使用当前拥有的vscode版本开发扩展程序。这也是扩展的最低版本。这样一来,可以确保您的扩展程序不会与旧版本一起使用(即使在某些情况下也可以使用)。

然后它将与任何将来的vscode版本兼容(除非以不兼容的方式删除或更改了API)。回滚到较早的vscode版本以对其进行扩展测试是非常棘手的,因此您所要做的就是使其与当前版本一起正常工作。

使用新的vscode版本的新功能后,便会增加扩展的最低版本。