首页 > 解决方案 > 如何找出哪个扩展在 vscode 中提供了命令?

问题描述

我不知道哪个扩展有什么功能,有没有办法显示它的源?

也很想知道是否可以跟踪功能的源代码。

标签: visual-studio-codevscode-extensions

解决方案


我唯一能想到的就是检查package.json文件,因为即使vscode.commands.getCommands()只返回纯字符串。这可以通过vscode.extensionsAPI 完成:

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仅包括已激活的扩展程序,因此超时以确保在启动时激活的所有扩展程序都已完成激活。


推荐阅读