После того, как createTreeView () создаст экземпляр TreeView, раскрытие () берет вашу производную реализацию TreeItem. Открытие () не принимает ViewColumn, как это делает WebView [Panel]. Единственный способ, которым API расширения vscode может указать ViewColumn, - это ExtHostTestEditor, реализующий интерфейс TextEditor, и WebView. Итак, все ли пользовательские редакторы должны быть реализованы с помощью WebView? TreeView (s) только для боковых видов панели активности?
Это кажется странным, поскольку существует предостережение не использовать WebView (ы), поскольку они имеют большой вес. Плюс к этому прилагаются дополнительные усилия, чтобы внешний вид WebView соответствовал редактору. vscode-json-редактор использует WebView, и я не нашел никаких настраиваемых редакторов, которые не используют WebView. Проверка подхода WebView поможет избежать попадания в целую кучу кроличьих нор. Спасибо.
Эти типы представлений имеют разные варианты использования. Вот краткий обзор каждого VS Code 1.28:
В виде дерева
TreeViews могут отображаться на боковой панели, например, в проводнике или в разделе управления версиями. Древовидные представления используют api драйвера данных, где VS Code управляет представлением. Это означает, что вы получаете многое бесплатно, но не можете полностью настроить поведение представления в виде дерева.
Используйте представление в виде дерева, если вы хотите добавить дополнительное представление данных. Хорошим примером представления в виде дерева может быть настраиваемый файловый менеджер, показывающий структуру редактора или представляющий список ресурсов.
WebView
Веб-просмотры могут отображаться в редакторе. Они могут содержать любой вид html-контента, но вы несете полную ответственность за пользовательский опыт этого контента.
Используйте веб-просмотр, если вам нужен индивидуальный пользовательский интерфейс или необходимо представить полностью настраиваемое представление данных.
Нет, вы не можете импортировать CSS-код VS Code в веб-просмотр. Он изолирован, как iframe в песочнице.
Спасибо за подтверждение. Было бы неплохо, если бы API и UI были более открытыми для расширения без использования подхода WebView. Доступен ли CSS для импорта в WebView? Если мой WebView содержит текст, в зависимости от того, как написан CSS, HTML WebView может ссылаться на те же селекторы CSS.