Метод vscode.window.showErrorMessage(msg, b1, b2 …)
генерирует кнопки для b1, b2… с заголовками значений b1, b2 ... и возвращает обещание, для которого возвращаемое значение является заголовком выбранной кнопки.
Это был бы отличный способ запросить выбор пользователя, если бы там оставалось окно сообщения. К сожалению это не так. После истечения времени ожидания оно исчезает, и я не могу найти документацию по семантике этого с точки зрения разрешения обещания.
В идеале был бы какой-то способ указать результат по умолчанию.
Возможно, тайм-аут заставляет обещание разрешить значение undefined; если это так, я могу интерпретировать возвращаемое значение undefined как означающее «действие по умолчанию».
Итак, вот вопрос: каково поведение команды VSCode в отношении ожидающего обещания, когда сообщение скрыто?
Существует еще одна подпись vscode.window.showErrorMessage(msg, options, b1, b2 …)
, в которой опции включают modal?: boolean
, но нет информации о том, предотвращает ли модальность тайм-аут. Эксперимент показывает, что modal: true создает обычный модальный диалог Windows. В дополнение к кнопкам с заголовками, которые я поставил, на нем была кнопка Отмена, которая, как я полагаю, соответствует кнопке закрытия X немодальных уведомлений.