likes
comments
collection
share

vscode 插件开发体验,动手修复了两个 git 插件的小问题

作者站长头像
站长
· 阅读数 65

本文首发于公众号 极客枫哥 ,日更分享各种好玩的软件、编程知识和个人成长故事

大家好啊,我是枫哥~

上篇我给大家推荐了一个 vscode 的 git 操作插件,lazygit for vscode。今天升级 vscode 后发现了两个小问题,然后自己 fork 插件代码完善了一下,分享一下解决思路。

  1. 插件打开时会关闭已有的 terminal;
  2. 插件关闭后关标不会聚焦到上次编辑的位置;

修复后的插件可以在文末下载。

查看源代码

这个插件的实现思路其实很简单,就是在编辑器组打开一个新的 terminal,然后执行 lazygit && exit 命令。

代码仓库地址:github.com/Chaitanya-S…

核心的代码就是这个函数,创建了一个 lazygit 的实例。

vscode 插件开发体验,动手修复了两个 git 插件的小问题

不难发现在最后的 if 判断就是导致第一个问题的原因了,如果开启了多个 terminal,就会先关闭其他的 terminal。

不知道作者为什么要加上这个判断,但是对于我个人而言,是不需要这种行为的,所以直接把这段代码去掉就好了

第二个问题要解决的话,很容易就能想到思路,就是在插件关闭的时候触发回答上次编辑位置的命令就可以了

对应 vscode 中的命令就是

workbench.action.focusActiveEditorGroup

查看 vscode 官网提供的 api,网址在这里:code.visualstudio.com/api/referen…

vscode 插件开发体验,动手修复了两个 git 插件的小问题

可以看到有一个 onDidCloseTerminal 的事件,顾名思义,就是 terminal 关闭时会触发。于是加上了这么一段

vscode 插件开发体验,动手修复了两个 git 插件的小问题

好了,代码改完后我们来测试一下。

直接按下 ctrl + f5 就可以开启 vscode 插件的调试模式,然后可以在新打开的窗口中验证一下功能是否正常。

经过测试,我发现功能是正常的了,上面的两个问题都没有了,舒服了~

那么接下来我们就来把插件重新打个包

先在全局安装 vsce (vscode extension)

npm i vsce -g

安装好后执行打包命令

vscode 插件开发体验,动手修复了两个 git 插件的小问题

就可以看到在当前目录下生成了一个 vsix 文件

然后重新安装新的插件

vscode 插件开发体验,动手修复了两个 git 插件的小问题

重新打开 vscode,就可以了。

随便去给作者提了个 PR,不过我感觉他大概率不会 merge,github.com/Chaitanya-S…

后面有空的话,可以自己写一个上架到插件中心

总结

本文记录了我使用 vscode lazygit 插件过程中发现的两个小问题,然后自己动手修改插件代码进行优化的过程。也基本了解了 vscode 插件调试和开发的大致方案。

转载自:https://juejin.cn/post/7376861773837647909
评论
请登录