vscode 插件开发体验,动手修复了两个 git 插件的小问题
本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事
大家好啊,我是枫哥~
上篇我给大家推荐了一个 vscode 的 git 操作插件,lazygit for vscode。今天升级 vscode 后发现了两个小问题,然后自己 fork 插件代码完善了一下,分享一下解决思路。
- 插件打开时会关闭已有的 terminal;
- 插件关闭后关标不会聚焦到上次编辑的位置;
修复后的插件可以在文末下载。
查看源代码
这个插件的实现思路其实很简单,就是在编辑器组打开一个新的 terminal,然后执行 lazygit && exit 命令。
代码仓库地址:github.com/Chaitanya-S…
核心的代码就是这个函数,创建了一个 lazygit 的实例。
不难发现在最后的 if 判断就是导致第一个问题的原因了,如果开启了多个 terminal,就会先关闭其他的 terminal。
不知道作者为什么要加上这个判断,但是对于我个人而言,是不需要这种行为的,所以直接把这段代码去掉就好了
第二个问题要解决的话,很容易就能想到思路,就是在插件关闭的时候触发回答上次编辑位置的命令就可以了
对应 vscode 中的命令就是
workbench.action.focusActiveEditorGroup
查看 vscode 官网提供的 api,网址在这里:code.visualstudio.com/api/referen…
可以看到有一个 onDidCloseTerminal 的事件,顾名思义,就是 terminal 关闭时会触发。于是加上了这么一段
好了,代码改完后我们来测试一下。
直接按下 ctrl + f5 就可以开启 vscode 插件的调试模式,然后可以在新打开的窗口中验证一下功能是否正常。
经过测试,我发现功能是正常的了,上面的两个问题都没有了,舒服了~
那么接下来我们就来把插件重新打个包
先在全局安装 vsce (vscode extension)
npm i vsce -g
安装好后执行打包命令
就可以看到在当前目录下生成了一个 vsix 文件
然后重新安装新的插件
重新打开 vscode,就可以了。
随便去给作者提了个 PR,不过我感觉他大概率不会 merge,github.com/Chaitanya-S…
后面有空的话,可以自己写一个上架到插件中心
总结
本文记录了我使用 vscode lazygit 插件过程中发现的两个小问题,然后自己动手修改插件代码进行优化的过程。也基本了解了 vscode 插件调试和开发的大致方案。
转载自:https://juejin.cn/post/7376861773837647909