Расширение VsCode.Как выбрать древовидный элемент правой кнопкой мыши - PullRequest
0 голосов
/ 13 октября 2018

Я пишу расширение VsCode.Когда пользователь нажимает правой кнопкой мыши на элемент в древовидном представлении, он получает всплывающую команду, действия которой применяются к ранее выбранному элементу.В самом VsCode это не так.Например, щелчок правой кнопкой мыши по новому файлу добавляет файл в текущую выделенную папку (не выбранную).Как я могу повторить это поведение в моих расширениях?

1 Ответ

0 голосов
/ 14 октября 2018

Я нашел решение.При регистрации команды, запускаемой правой кнопкой мыши, добавьте параметр, который является узлом дерева.Когда команда вызывается через всплывающее меню, этот узел дерева будет выделенным узлом, а не выбранным узлом.Например, замените код

commands.registerCommand('myExtension.myCommand', () => this.command());

и позже:

command() {
}

на

commands.registerCommand('myExtension.myCommand', command(), this);

и позже:

command(node: TreeNode) {
    if (node) {
    } 
}

if (node) необходим, если команда может быть вызвана из другого контекста (например, кнопки), в этом случае node будет undefined.

...