我想获取代码中已安装的 VS Code 扩展列表。
不是来自 CLI,我希望它在代码中,这样我就可以在单元测试中将其写入控制台以进行诊断,其行为就像未安装东西一样。可能是某些东西尚未加载(或已加载但尚未准备好)。 我已经知道如何从 CLI 获取列表,详细信息请参见此处 如何显示 Visual Studio Code 中安装的扩展?
.
可能有一些命令我可以与executeCommand
const extensions = vscode.extensions.all; // returns an array
vscode.xml
和所有其他预安装的语言扩展。不仅仅是您可能手动安装的扩展。
如果您愿意,您可以按
id
过滤它们。例如,删除以 vscode.
开头的内容。
let extensions = vscode.extensions.all;
extensions = extensions.filter(extension => !extension.id.startsWith('vscode.'));
这将消除大约 80 个内置插件,但还有更多 - 有一些以“ms-code”开头的你可能不感兴趣。以防万一,似乎在 VS Code
vscode.context
对象中的方法找到扩展 -
resolveConfiguration
。
打开开发工具;
vscode.context.resolveConfiguration()
.then(a => {
console.log(a.profiles.profile.extensionsResource.path);
});
// /home/user/.vscode/extensions/extensions.json
在终端/shell中执行:
cat -- '/home/user/.vscode/extensions/extensions.json' \
| jq '.[] | .identifier.id + " (v" + .version + ")"';
// Result example
"ms-vscode.makefile-tools (v0.9.10)"
"timonwong.shellcheck (v0.37.1)"
"vue.volar (v2.0.10)"
"prograhammer.tslint-vue (v1.5.6)"
"idered.npm (v1.7.4)"
...