Как узнать, какое расширение предоставило команду в vscode? - PullRequest
2 голосов
/ 18 апреля 2020

Я не знаю, из каких расширений появилась функция, есть ли способ отображения ее источника?

Также было бы интересно узнать, возможно ли отследить исходный код функций.

Ответы [ 3 ]

1 голос
/ 23 апреля 2020

Проверьте эту ссылку из документации VS Code.

Здесь вы можете увидеть, где расширения установлены по умолчанию.

И, кроме того, вы можете получить доступ к их исходному коду.

Где установлены расширения?

Расширения установлены в расширениях для каждого пользователя папки. В зависимости от вашей платформы местоположение находится в следующей папке:

  • Windows %USERPROFILE%\.vscode\extensions
  • macOS ~/.vscode/extensions
  • Linux ~/.vscode/extensions

Вы можете изменить местоположение, запустив VS Code с параметром командной строки --extensions-dir

Относительно того, какая функция и с какого расширения приходит, я не уверен, что это возможно.

0 голосов
/ 24 апреля 2020

какая функция появилась из какого расширения

Да, вы можете сделать это, воспользовавшись IntelliSense VS C:

  • Я предполагаю (1), что вы имеете в виду, что вы имеете в виду команду, выполняемую из палитры команд, и

  • Открыть keybindings.json в vscode

  • Вы должны увидеть JSON как показано ниже; если нет, добавьте один, как показано ниже (вы не собираетесь его оставлять).

  {
    "key": ".",
    "command": "REPLACE THIS WITH YOUR COMMAND NAME",
    "when": "suggestWidgetVisible"
  }

  • Там, где написано «ЗАМЕНИТЕ ЭТО СВОЕМ ИМЯ КОМАНДЫ», начните вводить название интересующей вас команды

  • Откроется виджет с предложением VS C, отображающий примерно EXTENSION_NAME.YOUR_COMMAND. Если виджет подсказок не открывается, нажмите ctrl+space, чтобы открыть его.

  • Запишите название добавочного номера; это то, что способствовало этой функции / команды. Если имя не соответствует расширению, возможно, это базовая функция VS C

, отслеживающая исходный код функций

  • Большинство расширений на GitHub, как и основной код для VS C, так что вы можете просто перейти к соответствующему хранилищу и найти код для этой команды.
0 голосов
/ 18 апреля 2020

Единственное, о чем я могу думать, это проверка файлов 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 включает только активированные расширения, отсюда время ожидания для проверки всех расширений которые активируются при запуске, делаются с их активацией.

...