Как создать собственный диалог в VSCode?

Я разрабатываю расширение для VSCode, и я хочу отобразить настраиваемое диалоговое окно, чтобы помочь пользователю настроить ini-файл.

Можно ли создать собственный диалог с метками и входами?


person thur    schedule 14.09.2016    source источник


Ответы (1)


Вы не можете создавать новые элементы пользовательского интерфейса, но если вы хотите получать данные от пользователя, вы можете использовать код, как показано ниже:

let options: InputBoxOptions = {
    prompt: "Label: ",
    placeHolder: "(placeholder)"
}

window.showInputBox(options).then(value => {
    if (!value) return;
    answer1 = value;
    // show the next dialog, etc.
});

Это будет использовать тот же пользовательский интерфейс, что и палитра команд (при нажатии Ctrl + P или любой другой команды, открывающей поле ввода вверху).

person Llewey    schedule 16.09.2016
comment
это все еще актуально в 2017 году? Также мне интересно, есть ли ссылка на политику пользовательского интерфейса vscode или чего-то там, где они обсуждают, почему это еще не часть api или планируют ли они реализовать его в будущем? - person Dimitry K; 25.08.2017
comment
Да, это все еще правда. Вы можете прочитать принципы этого решения здесь: code.visualstudio.com/docs/ extensionAPI / шаблоны и принципы - person Llewey; 26.08.2017
comment
Мы не предоставляем разработчикам расширений прямой доступ к базовому пользовательскому интерфейсу DOM. С помощью VS Code мы постоянно пытаемся оптимизировать использование базовых веб-технологий ... и мы продолжим настраивать использование DOM по мере развития этих технологий и нашего продукта ... мы запускаем расширения в их собственном хост-процессе и предотвратить прямой доступ к DOM. VS Code также включает встроенный набор компонентов пользовательского интерфейса для распространенных сценариев, таких как IntelliSense, так что эти возможности единообразны для языков программирования и расширений, и разработчикам расширений не нужно создавать свои собственные. - person Llewey; 26.08.2017
comment
это отличная информация! Однако там ничего не говорится о плане внедрения модальных окон или настраиваемых диалоговых окон (конечно, они говорят, что не хотят, чтобы каждый разработчик расширения изобретал колесо, но добавление функциональности модального диалогового окна может быть полезно ..) - person Dimitry K; 28.08.2017
comment
Расширение палитра цветов отлично открывает диалоговое окно. - person Jeff Hernandez; 10.04.2018
comment
Выглядит аккуратно, спасибо за внимание, Джефф. Однако они не делают этого с помощью стандартного api, они создают отдельное электронное приложение в своем собственном процессе и используют ipc для связи между ним и основным процессом расширения средства выбора цвета. - person Llewey; 11.04.2018