Vscode 插件开发-HexoHead

Author Avatar
琉璃 2月 06, 2019

Vscode使用

最近从Pycharm IDE换成了Vscode。理由如下:

  • 插件数量和种类
  • 主题
  • 重量
  • 支持更多的语言
  • 更多的使用场景
    当然,我之前开发Android App的时候还是用的Android Studio。

以前我写python比较多,所以用Pycharm。但是现在我什么语言都会去写一点点。这样不管什么东西,我都能够写一点。各种语言的基础语法还是很容易上手的。比如我最近就写了一些JS,HTML,CSS,TS。这是我使用编辑器的一个原因。那为什么我不去选择那些老牌编辑器呢,比如Vim和Emacs又或者Atom呢?

Vim的快捷键我很喜欢。这样分不同的编辑模式,更加依赖于单键快捷键而不是组合键的想法很符合我的习惯。

隔壁Emacs中函数式编程语言Lisp是我喜欢的点。函数式编程是信仰,但是函数式编程在日常开发中没有很多使用机会。的确Coljure可以开发web,但是这种方式并不大大众。Emacs或许是一个很好的使用Lisp的地方。

Atom算是一个现代的编辑器。它的插件也很多。我之前使用的时候,遇到过插件太多,出现冲突以及由于插件太多导致启动速度过慢的问题。

Vscode是微软新出的一个编辑器。这么一说微软现在旗下有两款编辑器?一款原来属于Github的Atom,还有Vscode。对于我来说,Vscode的优势在于对Windows平台优秀的支持以及现代化的插件。Vscode背靠微软,对微软的产品支持极佳。用户可以非常方便的部署Azure。可别忘了,现在Github也被微软收购了。Vscode对Github的支持也是很棒。比如Inline Diff,又或者在Command Platte进行Git的各种操作。

大部分常用插件Vscode都有,只记得有一回我找不到想要的插件。那一次我使用Phaser库,但是写代码的时候没有自动补全。我便去找Phaser的插件,但是我并没有找到。

要说它的缺点,那可能是快捷键了。它的快捷键不如老牌编辑器那么好用。虽然有插件,但是像Vim这样的快捷键,不通过原生支持,很难去展现它的精髓。毕竟大多编辑器都是以组合键为主。但也不必担心,大多数的操作都可以在Command Platte中实现。只要手不用离开键盘,都是好的快捷键实现。

插件开发

我平时写Hexo博客习惯自己新建一个文件,因此文件头每次都要重写一遍,很麻烦。如果使用官方的命令行创建草稿,Tag和Category不会显示候选项。很容易写错Category的名字,比如除了Tech这个标签,还多了一个叫tech。这些问题都是我这个插件想要解决的。

插件Github地址->传送门
Vscode插件地址->传送门
现在还有一些小bug没修。

就整个开发体验来说,一般。文档没有Android多,社区的资源也不多。但是我在查找Vscode插件开发的资料的时候,我看到的博客都在清一色地吹Vscode的API有多好用,有多清楚。

的确官方API文档写的还算清楚,方法,类都列了出来。但问题是有些Class是不能直接创建的,比如一个代表Current Window的Class,你得用函数获得,不能自己创建。这些点在官网中都没体现出来。所以开发的时候,我就遇到不少坑,明明这个Class在官方API中提到过,我怎么不能把它实例化。

之后,我一般都在API文档里找我需要的API后,去Github上参考一下别人是怎么调用这个API的。

这算是我第一次使用Typescirpt,第一次接触回调和异步。写不明白。这儿缺一个回调,“Promise not handled in one second”;那儿写了一个await,但是发现await根本不理我,我没有得到我想要的数据。上网查查资料,却觉得自己并没有写错。我不断的把代码重排序,也终于算是写出来了。

整个代码就像一个Snippet。但是Vscode的Snippet暂时不支持执行bash代码,我也就用这种方式来解决我的问题。Tag和Category的获取便是遍历一遍_posts文件。一开始我还想把遍历Posts的模块独立出来,单独写一个Refersh Posts。我怕集成在一起,每次插入个文件头需要很多时间。这大部分时间都在遍历文件上。但是经过实际测试,速度还行,便没有独立出来。

正式版发布前我便是准备把已知的一些Bug修复,顺便看看能不能增强一下补全功能-对于多个Tag和Category都可以进行补全。

This blog is under a CC BY-NC-SA 3.0 Unported License
本文链接:https://www.inevitable.tech/posts/3fef5fe0/