Quick JUnit の Ruby 版っぽい VSCode 拡張作ってみた

この記事は Misoca+弥生 Advent Calendar 2018 2日目の記事です。 Misoca では Ruby を書くお仕事をしています。 Misoca にジョインする前はずっと Java を書くお仕事をしていたので、Ruby 開発について日々勉強中といった感じです。

Qucik JUnit Plugin for Eclipse

Java を書いていた時には Quick JUnit Plugin for Eclipse というプラグインを活用していました。 このプラグイン

  • Cmd+9 (Ctrl+9) で テストコードと実装コードをトグルできる
  • Cmd+0 (Ctrl+0) で テストコードを JUnit ですぐに実行できる
  • テストコードを実行する際に、カーソル位置のテストのみを実行できる

という特徴を持った Eclipse プラグインです。 Javaテスト駆動開発(TDD)をする時にとても重宝していました。

Visual Studio Code 拡張

現在 Ruby を書くときには VSCode を使っています。

  • VSCode でも Quick JUnit と似た操作感で RSpec を実行したい
  • VSCode の拡張を書いてみたい

という理由から VSCode 拡張を作ってみることにしました。

vscode-quick-rspec

できたのがこちらの拡張です → vscode-quick-rspec

動作イメージは以下のような感じです。

f:id:mallowlabs:20181202111700g:plain

Cmd+9 (Ctrl+9) で実装とテストを切り替えて、Cmd+0 で RSpec を実行しています。 もちろん RSpec の実行は現在のカーソル行を実行します。

これで Quick JUnit のような感覚で、Ruby で開発できるようになりました。

自分で使う用なので Marketplace には上げてませんが、使ってみたい場合には

$ git clone https://github.com/mallowlabs/vscode-quick-rspec.git
$ mv vscode-quick-rspec $HOME/.vscode/extensions/

して VSCode を再起動してください。 自分用なのでエラー処理とかは適当です(言い訳)

VSCode 拡張開発の所感

雛形のジェネレーターがしっかりしているので、すぐに開発をスタートできるのが好印象でした。 デバッガもあるし、言語も ES6 で async/await なんかも使えるのでとても快適です。 API も今回作った拡張に必要な分は揃っているという感じで、いろいろできそうだなと感じました。

作っている途中でもうあることに気づく法則

何かを作っていると途中ですでにそれがあることに気づくことはよくありますが、今回も作っている途中で似たような拡張がたくさんあることに気づいてしまいました…。

今回は VSCode 拡張の作り方の勉強になったのでよかった、ということにしたいと思います。

まとめ

VSCode 拡張は思いの外簡単に作れたので、生産性を向上させるような拡張を思いついたらまた作ってみたいです。

明日は @corocn が 「ALB + Lambda + Ruby をセキュアに」する話を書いてくれるみたいです。楽しみですね。