【发布时间】:2020-12-07 14:48:20
【问题描述】:
我不知道哪个扩展有什么功能,有没有办法显示它的源代码?
还想知道是否可以追踪功能的源代码。
【问题讨论】:
标签: visual-studio-code vscode-extensions
我不知道哪个扩展有什么功能,有没有办法显示它的源代码?
还想知道是否可以追踪功能的源代码。
【问题讨论】:
标签: visual-studio-code vscode-extensions
我唯一能想到的就是检查package.json 文件,因为即使vscode.commands.getCommands() 也只返回纯字符串。这可以通过vscode.extensions API 完成:
import * as vscode from 'vscode';
export function activate(context: vscode.ExtensionContext) {
setTimeout(() => {
for (const extension of vscode.extensions.all) {
let commands = extension.packageJSON.contributes?.commands;
if (!Array.isArray(commands)) {
continue;
}
for (const command of commands) {
console.log(command.title + " is from " + extension.id);
}
}
}, 2000);
}
请注意,all 仅包含 已激活 扩展程序,因此会超时以确保所有在启动时激活的扩展程序都已完成激活。
【讨论】:
从 VS Code 文档中查看 link。
您可以在此处查看默认安装扩展的位置。
此外,您还可以访问他们的源代码。
扩展安装在哪里?
扩展安装在每个用户的扩展文件夹中。根据您的平台,该位置位于以下文件夹中:
- Windows
%USERPROFILE%\.vscode\extensions- macOS
~/.vscode/extensions- Linux
~/.vscode/extensions您可以通过使用 --extensions-dir 命令行选项启动 VS Code 来更改位置
关于哪个功能来自哪个扩展,我不确定是否有可能实现。
【讨论】:
哪个扩展产生了什么功能
是的,你可以这样做,利用 VSC 的智能感知:
我假设 (1) 通过功能,您的意思是从命令调色板可执行的命令和
在 vscode 中打开keybindings.json
您应该会看到如下所示的 JSON;如果没有,请添加如下所示(您不会保留它)。
{
"key": ".",
"command": "REPLACE THIS WITH YOUR COMMAND NAME",
"when": "suggestWidgetVisible"
}
在“用您的命令名称替换它”的地方,开始输入您感兴趣的命令的名称
VSC 建议小部件将打开,大致显示 EXTENSION_NAME.YOUR_COMMAND。如果建议小部件未打开,请按 ctrl+space 将其打开。
注意扩展名;这就是促成该功能/命令的原因。如果名称与扩展名不匹配,则可能是 VSC 的核心功能
追踪功能的源代码
【讨论】: