参考请注意: 该文档创建于 2022/9/13,请注意随时间流逝文档信息是否过时,是否还有可参考的价值。 该文档仅作为个人笔记记录。 该文档记录时,使用的软件等版本会列在文档中,请注意识别。 对于该文档中个人使用的一些问题的解决方案,不一定是最佳实践(解决该问题,且尽可能解决其它可能涉及到这块的其他问题),与此相关的建议欢迎评论补充。
开始上手
先按照这个教程,跑到可以运行 hello world:
这个插件目前唯一的功能,就是ctrl+shift+p
调用hello world
命令,显示一条通知。
- Registers the onCommand Activation Event:
onCommand:helloworld.helloWorld
, so the extension becomes activated when user runs the Hello World command. - Uses the contributes.commands Contribution Point to make the command Hello World available in the Command Palette, and bind it to a command ID
helloworld.helloWorld
. - 在
extension.ts
使用 commands.registerCommand VS Code API 把函数与注册的命令 IDhelloworld.helloWorld
绑定
看一下目录树结构:src/extensions.ts
是插件入口。
可以再这下面写一个简单的常用类型插件的开发指引
插件主要信息
需要在package.json
来写这个插件主要做了哪些事情,包括:
- 贡献者 & 插件名:
使用<publisher>.<name>
唯一标识插件名称publisher``name``displayName
激活事件
activationEvents
-
贡献点(contribution points)
插件对 vscode 的所有拓展内容必须在contribute
字段声明一下。
在这个文档里面你可以找你想改哪一个地方,映射到叫什么名字,然后做一下即可。
when 表达式
上面很多配置项都有 when 属性决定什么时候对应项可以生效。
它是一个另写的条件表达式语句,具体可以用什么怎么用得参考文档
激活事件
指定你这个插件激活(也就是extension.ts
中activite
开始执行)的时机。
使用*
可以直接和 vscode 一起启动,但是为了提高体验,还是用的时候再启动。
vscode API 简述
基础能力
工作台
编辑 webView
仿照这个例子的原理,可以实现最多只能同时存在一个的 webView,可以做编辑器等使用。
- 当前不存在,可以打开
- 当前存在一个 webView,再次打开会刷新里面内容
而不是再打开一个