如何使用代码获取已安装的 VS Code 扩展列表

问题描述 投票:0回答:2

我想获取代码中已安装的 VS Code 扩展列表。

不是来自 CLI,我希望它在代码中,这样我就可以在单元测试中将其写入控制台以进行诊断,其行为就像未安装东西一样。可能是某些东西尚未加载(或已加载但尚未准备好)。 我已经知道如何从 CLI 获取列表,详细信息请参见此处 如何显示 Visual Studio Code 中安装的扩展?

.

可能有一些命令我可以与executeCommand

一起使用,但我找不到它。


const extensions = vscode.extensions.all; // returns an array
vscode-extensions
2个回答
3
投票
将为您提供所有已安装的扩展 - 它确实包括内置扩展,例如
vscode.xml
和所有其他预安装的语言扩展。不仅仅是您可能手动安装的扩展。

如果您愿意,您可以按 
id

过滤它们。例如,删除以

vscode.

 开头的内容。
  let extensions = vscode.extensions.all;
  extensions = extensions.filter(extension => !extension.id.startsWith('vscode.'));

这将消除大约 80 个内置插件,但还有更多 - 有一些以“ms-code”开头的你可能不感兴趣。
    

以防万一,似乎在 VS Code

0
投票
(2024-05) 中也应该可以通过

vscode.context

 对象中的方法找到扩展 - 
resolveConfiguration

打开开发工具;
  1. 在 DevTools Console 中执行:
  2. vscode.context.resolveConfiguration() .then(a => { console.log(a.profiles.profile.extensionsResource.path); }); // /home/user/.vscode/extensions/extensions.json
在终端/shell中执行:
  1. 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)"
...


© www.soinside.com 2019 - 2024. All rights reserved.