如何找出 vscode 中哪个扩展提供了该命令?

use*_*582 5 visual-studio-code vscode-extensions

我不知道哪个扩展产生了什么功能,有没有办法显示其源代码?

我也有兴趣知道是否可以追踪这些功能的源代码。

Gam*_*a11 2

我唯一能想到的是检查文件package.json,因为甚至vscode.commands.getCommands()只返回纯字符串。这可以通过 API 来完成vscode.extensions

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);
}
Run Code Online (Sandbox Code Playgroud)

请注意,all仅包括激活的扩展,因此超时以确保启动时激活的所有扩展均已完成激活。