vscode插件可以分为很多种类型,比如webview, command, tree view等。每个类型的插件都涉及一些vscode API,webview插件主要涉及
window.createWebviewPanel
,
window.registerWebviewPanelSerializer
这两个vscode API。
开发环境搭建
一般使用vscode提供的脚手架进行vscode插件开发。使用npm安装yo
和generator-code
,通过它们生成一个模板工程代码,以该工程为基础进行vscode插件开发。
npm install -g yo generator-code # 安装相关工具
yo code # 按照步骤生成脚手架项目
参考:vscode官方文档
插件的相关概念
需要掌握vscode插件开发中的基本概念以及vscode API的基本使用。vscode插件有3个核心概念:
- 激活事件,这些事件触发了就意味着你的扩展被启动了
- Contribution Points,它写在
package.json
中,代表插件贡献的功能 - VS Code API
开发webview插件
使用window.createWebviewPanel
这个API创建一个Webview Panels。它可以代表一个webview,通过加载html文件来显示内容,通过设置html
属性来更新其内容。Webview panels的生命周期中有一些事件,例如事件onDidDispose,可以使用onDidDispose
这个钩子函数,在该事件触发时做一些事情。打开vscode的开发者工具可以调试webview,查看输出需要在"console"面板选择当前的frame。一个vscode插件控制一个webview,两者之间可以相互发送消息。使用Serialization
,setState
和getState
函数实现webview的持久化,其中Serialization
是基于setState
和getState
的。
相关链接: