Как обрабатывать событие щелчка в окне сообщения Visual Studio Code?

Согласно документации API, окно сообщения может принимать второй аргумент: массив строк, которые действуют как действия в окне сообщения (которое обычно имеет только одну кнопку / действие закрытия):

https://code.visualstudio.com/docs/extensionAPI/vscode-api#_window

showInformationMessage(message: string, ...items: string[]): Thenable<string>

Итак, я попробовал это:

vscode.window.showInformationMessage('hello world', ['test','taco','cheeseburger'], function(value){
  console.log(value + " was clicked");
});

Но, похоже, это не работает. Я получаю окно сообщения вместе с кнопкой «Закрыть», как обычно. Но затем слева от кнопки закрытия появляется еще одна кнопка без текста или заголовка.

Другое определение функции:

showInformationMessage<T extends MessageItem>(message: string, ...items: T[]): Thenable<T>

Итак, я попробовал что-то вроде этого:

let message: vscode.MessageItem = { title: 'testing' };
vscode.window.showInformationMessage('hello', [message], function(value){
  console.log(value + " was clicked");
});

Но это тоже не работает. По этому поводу очень мало документации, поэтому я не могу понять.


person Jake Wilson    schedule 12.09.2016    source источник


Ответы (1)


vscode.window
  .showInformationMessage('hello', 'test', 'taco', 'cheeseburger')
  .then(selection => {
    console.log(selection);
  });

or

vscode.window
  .showInformationMessage('hello', ...['test', 'taco', 'cheeseburger'])
  .then(selection => {
    console.log(selection);
  });

Оба результата приводят к диалогу, который выглядит следующим образом:

person Markus Liebschner    schedule 17.11.2016
comment
Я понял это недавно. Спасибо. Как-то странно, что вы вставляете произвольное количество элементов вместо массива произвольной длины. - person Jake Wilson; 17.11.2016