Vscode插件开发过程记录(使用外部PDF浏览器打开pdf)
本文最后更新于:2022年3月10日
记录下自己从零做一个Vscode插件的过程。开发Vscode插件需要用的语言是typescript。
先给几点小建议:
写插件时可以找下功能类似的插件源代码(博主写到最后发现已经有类似的了,不过还是借鉴了不少)。
官方例程合集:
https://github.com/microsoft/vscode-extension-samples
可以看看官方文档的中文翻译,很详细了:
https://liiked.github.io/VS-Code-Extension-Doc-ZH/#/get-started/extension-anatomy
环境配置
按教程安装Node.js和Git,再在命令行中运行’npm install -g yo generator-code’。
Hello World
在预项目位置运行’yo code’并按提示进行配置后得到一个可以开发的Vscode插件项目。
使用Vscode打开该项目,点击F5,在新窗口中按下’Ctrl+Shift+P’输入’Hello World’命令,能看到新窗口的右下角弹出Hello World弹窗。
修改
所生成的文件机构如下列所示
1 |
|
其实主要需要修改就是’extension.ts’文件(负责执行代码)和’package.json’文件(解释包里面的配置)。
package.json
activationEvents是触发事件,触发时运行main(默认为extension.ts文件),可以触发的事件在contributes中均列举出来。
事件类型有以下这些,具体可以看官方文档,选择自己插件 的触发时间。当然也可以添加多个触发事件(或关系)。
1 |
|
博主想让插件在打开pdf时触发,所以触发方式选择了’onCustomEditor:external-pdf’。并在’contributes’中配置
1 |
|
这里需要按你选择的触发方式去修改。
如果你需要用到插件配置,需要添加configuration让用户进行修改。因为博主需要让用户选择外部编辑器位置,所以添加了一项插件配置。
1 |
|
此外如果需要用到其他依赖包就需要在’package’的’dependencies’及’devDependencies’中进行添加依赖。
extension.ts
主要为’activate’函数,这个函数在第一次激活插件后运行一次。
如果要每次触发时均运行需注册函数。
1 |
|
此外博主使用cross-spawn库进行命令行打开外部窗口,spawn函数第一项参数为命令,第二项参数为命令参数数组。
发布
命令行输入’npm install -g vsce’安装vsce。在package.json
的version下面一行添加
"publisher": "x",
,后面的双引号内需与下面的publisher名称一致。命令行运行’vsce package’打包代码(需要添加许可证)。
注册微软账号,再去https://dev.azure.com/vscode注册Azure组织,按图中点击获得个人令牌。
如果没有marketplace点show more scopes就好了
去https://marketplace.visualstudio.com/manage/createpublisher?managePageRedirect=true创建publisher(名称需与package.json
中的publisher一致),然后去https://marketplace.visualstudio.com/manage/publishers/ 选择Vscode插件上传自己vsce package
打包完的插件进行发布。就可以静候佳音,等着插件在市场里出现。
之后进行插件更改的话只需要重新vsce package
并发布即可。
以上就是本人开发Vscode插件过程。本人是前端小白,如有不对请各位大佬指正。
参考资料
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!