Vim
TypeScript
VSCode

VSCode の Vim プラグインにコントリビュートした!

この記事は、VisualStudioCode AdventCalendar 2017 8日目の記事です。

はじめに

2017 年は私にとって Vim を使い始めた年になりました。
しかし普段は IDE などにある Vim のプラグインを使っています。

そして VSCode にも Vim のプラグインがあります!

Vim for Visual Studio Code

Vim for Visual Studio Code

目からウロコ、Vim の EasyMotion プラグイン

Vim には沢山のプラグインがあり、その中に EasyMotion というカーソル移動を爆速で行えるプラグインがあります。イメージで言うと、目線の先にカーソルを移動 することができるスグレモノです。

EasyMotion の機能についは、現在保守を行っている方のブログ記事に詳しく説明されています。

Vimのカーソル移動はもっともっと爆速になる! Vim-EasyMotion v3.0 をリリースしました

Imgur

(たとえば "wo" から始まる箇所へ一瞬でジャンプすることが出来ます)

勢いでコントリビュート

人気プラグインのため VSCodeVim でも EasyMotion がサポートされていたのですが、やや機能が足りていなかったので思い切って機能追加をしてコントリビュートすることにしました。

VSCode の拡張機能は TS もしくは JS で簡単開発

VSCodeVim は TypeScript で作られていたので、TypeScript (もしくは JavaScript) が分かる人なら機能追加もそう難しくありません。

EasyMotion ではカーソル移動先を強調表示するという挙動がありますが、VSCodeの拡張機能用 API に Decoration API というものがあるので再現可能です。

VSCode の登場時は拡張機能がそもそもサポートされていませんでしたが、現在はかなり細かい所にも手が届きます。拡張機能の作りやすさ、自由度の高さ は VSCode の非常に良いところだと思います。

VSCode の拡張機能用 API 一覧 (英語)

さいごに

VSCode の話なんだか Vim の話なんだかよく分からなくなってしまいました...。

VSCodeを含め、たいていのプラグインは GitHub でホストされている OSS なので、お気に入りのプラグインがあったら思い切ってコントリビュートすると良いと思います。

VSCode と VSCode のプラグインを盛り上げていきましょう!