一旦createTreeView()创建了一个TreeView实例,reveal()将获取TreeItem的派生实现。 reveal()不像WebView [Panel]那样采用ViewColumn。 vscode扩展API可以指定ViewColumn的唯一方法是实现TextEditor接口的ExtHostTestEditor和WebView。所有自定义编辑器都必须使用WebView实现吗? TreeView仅用于活动栏侧视图吗?
这看起来很奇怪,因为有一些警告不使用WebView,因为它们非常重。此外,还有额外的努力使WebView的外观与编辑器相匹配。 vscode-json-editor使用WebView,我没有找到任何不使用WebView的自定义编辑器。验证WebView方法有助于避免陷入大量的兔子洞。谢谢。
这些类型的视图具有不同的用例。以下是每个VS Code 1.28的快速概述:
树视图
TreeViews可以显示在侧栏中,例如在资源管理器或源代码管理部分中。树视图使用数据驱动程序api,其中VS Code控制演示文稿。这意味着您可以免费获得很多,但无法完全自定义树视图的行为。
如果要添加其他数据视图,请使用树视图。树视图的一个很好的例子是自定义文件浏览器,显示编辑器的轮廓或显示资源列表。
的WebView
Webview可以在编辑器中显示。它们可以包含任何类型的HTML内容,但您对此内容的用户体验负全部责任。
如果您需要自定义用户体验或需要提供完全自定义的数据视图,请使用webview。