学生時代に作った vim-jsx-pretty を今も頑張ってメンテナンスしている話

はじめに

この記事は,SLP-KBIT アドベントカレンダー 4日目の記事です. OBで記事を書くのは,どうやら自分だけのようです. 技術的な内容だと,後輩のためにあまりならないなと感じてネタに悩んだ結果, 学生時代に書いたプラグインで今もメンテナンスしているものについて話していきたいと思います.

vim-jsx-prettyとは

これは,自分が二年前にcoffeeでReactを書いていたときから,ちょうどbabelというツールを使い始めて, classベースのsyntax で React を書き始めた頃に作った vim用のsyntaxハイライターです.

当初,vim-jsx という facebook の中の人が書いたpluginがありましたが,お世辞にもきれいにハイライト出来ているとは言い難いものでした. というのも,vimが持っているxmlのsyntaxハイライトをそのまま流用しているだけで,jsx内に関数が書かれることなどがしっかりと考慮されていなかったからです.

そういった背景があり,このpluginを作成しました.

github.com

f:id:maxmellon:20181204124917p:plain

作成した当初は,レポートか何かで正規表現で苦戦したのがきっかけで,正規表現と向き合って克服したいというちょっとした事情もあったような気がします.

自分にとってのvim-jsx-pretty

このプラグインは僕にとって初めて身内以外のユーザーがついたものとなりました.スター数もおかげさまで158になりました.(2018.12.04 時点)

他人に使われるという感覚が初めてでとても嬉しかったし,今も嬉しいです. プログラミングが好きになった要素の1つとも言えるかもしれません. 特に,個人的な考えなのですが,開発者に使ってもらえるというのは僕の中で喜びが非常に大きかったです.

セールス活動も少しやっていた時期があって,ReactとVimシンタックスハイライトに困っている人をTwitterで見かけたときに苦手な英語で話しかけたりもしました

f:id:maxmellon:20181204124932p:plain

僕にとっては,プログラミングだけではなく,英語と向き合える良い場でした.(英語を学ぶモチベーションを引き立ててくれました)

メンテナンスの難しさ

社会人になり,vim以外のエディタも適宜使うようになり,すこしメンテナンスがしんどくなってきているという面がありました. 他の巨大なライブラリやプラグインと比べると本当に微々たる量なのですが,issueやPRも来るようになっていました.

新卒社会人ということもあり,仕事でいっぱいいっぱいな面もあり対応が結構疎かになっていました. そんなときに,@yuezk さんという中国の方が僕の代わりにissueへのコメント回答を代わりにやってくれていて本当に助かりました.

思い切ったリファクタリングのPRを投げてくれたり,僕の力では解決が難しい問題があったときに変わりに解決してくてたりしました.

f:id:maxmellon:20181204124946p:plain

github.com

思い切ってコラボレーターにしてみた

ちょうど先週くらいに @yuezk さんをコラボレーターにしてみました. コラボレーターにしたからなにか変化があったかと言われると,僕がすごく楽になったのと, @yuezk さんがより積極的に修正 (コーナーケース対応) を入れてくれる ようになったことだと思います.

この記事で一番言いたかったことは, @yuezk さんありがとう ということです.

さいごに

vim-jsx-pretty を作って,ハイライトが壊れている という,人によっては比較的な些細な課題を解決することで, 自分にとってはたくさんの人を喜ばすことができるとは思ってもいなかったし,素直に嬉しいと感じています.

同時に,自分自身の些細な不満を簡単にでもよいので技術で解決する重要性というのも感じることが出来ました.

このプラグインを作った上で,苦労した点や工夫した点,学んで点は,就職活動の面接でも話したことがあるくらい, ぼくにとって有意義なものでした.

学生時代に頑張ってよかったと思えるエピソードだったので,このアドベントカレンダーの記事として書いてみました.