【问题标题】:How to find out which extension provided the command in vscode?如何找出哪个扩展在 vscode 中提供了命令?
【发布时间】:2020-12-07 14:48:20
【问题描述】:

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

还想知道是否可以追踪功能的源代码。

【问题讨论】:

    标签: visual-studio-code vscode-extensions


    【解决方案1】:

    我唯一能想到的就是检查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 仅包含 已激活 扩展程序,因此会超时以确保所有在启动时激活的扩展程序都已完成激活。

    【讨论】:

      【解决方案2】:

      从 VS Code 文档中查看 link

      您可以在此处查看默认安装扩展的位置。

      此外,您还可以访问他们的源代码。

      扩展安装在哪里?

      扩展安装在每个用户的扩展文件夹中。根据您的平台,该位置位于以下文件夹中:

      • Windows %USERPROFILE%\.vscode\extensions
      • ma​​cOS ~/.vscode/extensions
      • Linux ~/.vscode/extensions

      您可以通过使用 --extensions-dir 命令行选项启动 VS Code 来更改位置

      关于哪个功能来自哪个扩展,我不确定是否有可能实现。

      【讨论】:

      • 而且大多数扩展都有一个指向其存储库的链接,您可以在其中查看源代码...
      【解决方案3】:

      哪个扩展产生了什么功能

      是的,你可以这样做,利用 VSC 的智能感知:

      • 我假设 (1) 通过功能,您的意思是从命令调色板可执行的命令和

      • 在 vscode 中打开keybindings.json

      • 您应该会看到如下所示的 JSON;如果没有,请添加如下所示(您不会保留它)。

        {
          "key": ".",
          "command": "REPLACE THIS WITH YOUR COMMAND NAME",
          "when": "suggestWidgetVisible"
        }
      
      
      • 在“用您的命令名称替换它”的地方,开始输入您感兴趣的命令的名称

      • VSC 建议小部件将打开,大致显示 EXTENSION_NAME.YOUR_COMMAND。如果建议小部件未打开,请按 ctrl+space 将其打开。

      • 注意扩展名;这就是促成该功能/命令的原因。如果名称与扩展名不匹配,则可能是 VSC 的核心功能

      追踪功能的源代码

      • 大多数扩展都在 GitHub 上,VSC 的核心代码也是如此,因此您只需导航到相关存储库并搜索该命令的代码即可。

      【讨论】:

        【解决方案4】:

        点击一个扩展并在打开的编辑器中显示其readme,点击Feature Contributions 链接,您将看到该扩展提供的设置和命令。例如:

        【讨论】:

          猜你喜欢
          • 2018-09-07
          • 1970-01-01
          • 2016-02-20
          • 2019-02-02
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2017-08-17
          • 1970-01-01
          相关资源
          最近更新 更多