手把手教你掌握vscode插件开发

1,360 阅读3分钟

这篇文章会带大家掌握vscode插件开发技巧,没有任何的要求,0基础都能掌握哦~

首先,我本身也是vscode小白的来的,自己摸索的,然后独立开发插件,现在都是通过好的idea,去推动我写新的插件,甚至可能2~3分钟就能实现一个想到不错的插件,在开发过程中你完全可以基于你的需要去开发或者定制自己的vscode插件,实现你在业务中的重复工作或者头痛的点。

因为我是自己摸索的vscode,我开发了有30~40个插件,但是我对于vscode api,其实并不是你们想象中的张口就能说上来的那种,我会将自己觉得非常常用的功能二次封装,因为原生的vscode api的命名可能对于英文不是很好的我来说,并不是特别的亲切,另外他的命名非常的长,不利于记忆,打个比方吧,我要实现一个消息弹出,在vscode api来说是vscode.window.showxxxx,我要输入那么多的东东,如果是我来封装,我说要不就像element-ui一样吧,meesage.info message.error,这样我就有2种形式的消息弹出了,是不是很好使用呢,当然我封装的不止这一个api,我将我觉得可以被复用或者不太好理解的api都进行了封装,写了一个库,因为我觉得他有点像vueuse,所以我给它取名叫@vscode-use,当然我这篇文章就是来围绕这个库来介绍的。

这个库是我自己实现的,所以我应该和市面上的大多数水文不太一样,都2023年了,我不希望大家还在用什么yo generate code这些webpack的产物去开发vscode了,我们当然需要的是tsup + ts的vscode模板了,这边分享一个我改造的vscode模板github.com/Simon-He95/… ,他是一个比较精简而且是vscode开发不二人选的模板了,他默认导入了@vscode-use/utils,而且配置了lint、release和相当好的调试配置,我下面放一段简单的代码告诉你他会有多简单去使用

import { message } from '@vscode-use/utils'
export function activate(context: ExtensionContext) {
    message.info('Hi, Simon')
}

这样就能实现一个消息弹窗,我觉得作为0基础的人看了也知道怎么玩吧,activate是vscode的生命周期在插件被启动的时候会走里面的逻辑,我觉得比较常用的还是事件吧,我们经常会想我想监听文字修改,文本切换,新建文件,修改文件等等的api,如果要你自己去找api文档,应该不简单吧,我全帮你封装在一个函数中了就是addEventListener,是的你没看错,就是这个api他是@vscode-use中导出的,因为有比较好的ts类型,你会知道他第一个参数会是 'terminal-close' | 'terminal-open' | 'terminal-change' | 'theme-change' | 'selection-change' | 'editor-visible' | 'activeText-change' | 'text-visible-change' | 'text-change' | 'text-open' | 'text-save' | 'folder-change' | 'file-create' | 'file-delete' | 'rename' | 'config-change',光从字面上你就知道他们的作用了吧,比如终端关闭、打开、修改,主题变更,选中内容变化,编辑器的显示隐藏,文件重命名等等的api, 你会不会觉得他可能和你开发与原生html和javascript一样亲切,看到这里我觉得你是真的想要掌握vscode的开发技巧,我也希望你能够在我的库的帮助下,开发出一款令你自己满意,并且能解决你在开发体验上痛点的插件,或者是令你自豪的插件

image.png 库:github.com/vscode-use/…

大家好我是Simon,一个不太会写vscode插件的程序员,希望大家多多关注我哦~ github.com/Simon-He95

知乎