VSCode IDE插件界面里各个组件的展示方式和相应代码

举报
gentle_zhou 发表于 2022/02/20 17:06:41 2022/02/20
【摘要】 本文会涉及到如下几个IDE组件:左边侧边栏,树形视图,右键菜单,终端面板,弹窗,状态栏,Webview视图。会展示每个组件的视图和相应的代码位置。

本文导航

本文会涉及到如下几个IDE组件:左边侧边栏,树形视图,右键菜单,终端面板,弹窗,状态栏,Webview视图。会展示每个组件的视图和相应的代码位置。

1. 左边侧边栏

侧边栏通常用来显示一系列拥有左侧树形视图的服务。
可通过在package.json的contributes -> viewsContainers -> activitybar中定义自己的侧边栏视图。
image.png

2. 树形视图

树形视图主要用来展示服务数据,单个视图内的数据成树形结构,默认每条数据占据一行,可显示图标、文本、焦点信息等,还可以包含可展开的子数据列表。
可通过在package.json的contributes -> views –> ${viewID}中定义自己的树形视图(里面的viewID为视图ID,可以是VSCode已有的explorer, debug等,也可以是自己在activitybar中定义的视图ID)。
image.png

或则

image.png

树形视图里面的数据可以通过自己创建一个resultTreeProvider.ts文件

3. 右键菜单

右键菜单是menus扩展点中的一种,可以是代码编辑区的右键菜单,资源列表里的右键菜单,IDE终端的按钮 或则 IDE终端里的筛选分类选项。
可以通过在package.json的contributes -> menus -> xxx/context中定义(如explorer/context、editor/context、view/item/context等,通过关联一个command来提供相关功能)。
代码编辑区的右键菜单:
image.png

资源列表里的右键菜单:
image.png

IDE终端里的筛选分类选项:
image.png

4. 终端面板

如果需要执行命令行并显示执行结果,可以在代码中通过vscode.window.createTerminal创建一个终端面板,并通过vscode.Terminal的show和sendText方法显示终端面板并发送要执行的命令行。
image.png

5. 弹窗

当需要给用户反馈操作结果、接口请求错误等信息时,通常采用弹窗提示的方式。VSCode的弹窗分为三种样式,分别是信息弹窗、警告弹窗和错误弹窗。
三种弹窗分别使用vscode.window.showInformationMessagevscode.window.showWarningMessagevscode.window.showErrorMessage方法生成,弹窗同时支持简单的按钮(items参数)和按钮点击事件(then方法)。
image.png

6. 状态栏

当需要给用户显示持续一段时间的信息时,如接口请求、操作请求过程中的提示信息等,VSCode通常会选择将其显示在状态栏上。
可以在代码中通过vscode.window.createStatusBarItem创建一个状态栏项,设置其text、tooltip等属性,并通过show()方法显示。状态栏项还支持关联到一个command。
image.png

7. Webview视图

由于VSCode对其插件的样式和显示有比较严格的限制,因此如果想按照自己的方式显示界面,通常需要借助Webview视图。
我们可以通过在代码中使用vscode.window.createWebviewPanel创建一个包含Webview视图的编辑器页签,并通过其webview.html属性设置Webview视图的html文本。
Webview视图的html页面可以关联本地的js、css和图片等文件。但需要注意的是,由于VSCode的限制,在Webview视图的html页面不能通过http请求api接口,因此如果需要在页面上展示接口数据,需要在Webview视图外请求数据,而Webview视图内的页面可以通过webview.postMessage和webview.onDidReceiveMessage方法与外部进行数据通信。

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。