Rubyを書き始めるにあたり、WebStormからVSCodeに完全移行しました。RubyMineまで買えない
1年半ほど前に使ったときは、動作がモッタリしてるな〜という印象でしたが(Sublimeが軽快すぎて)
今使ってみると結構さっくさくになってる!快適!
(ちなみにキーバインドはSublimeのバインドがそのまま使えて助かりました。癖ってなかなか変えられないですね...)
拡張機能 「Ruby」 をインストール
拡張機能検索で「ruby」と打てば1番上にでてきます。
Ruby言語に関して、デバッガー、Linter、自動補完など大体のことをカバーしてくれる必須拡張機能です。
この拡張機能の設定をしていきます。
Linter
スタイルガイドに沿わない汚いコードを怒ってほしい!のでlinterをいれます。
こんな感じ
linterは rubocop にしました。
まずgemをグローバルインストールします。
$ gem install rubocop
デフォルトではlinterはオフになっているので、 VSCodeの settings.json
で設定を書き加えます。
"ruby.lint": {
"rubocop": true
},
以上!
もしエラーがでてたらVSCodeを再起動orリロードするか、それでもだめならパスの問題かもしれないです。
[Mac]VScode で ruby-rubocop が動かなくなったら executePath を設定してみよう - Qiita
より詳しい設定をしたい場合は、 .rubocop.yml
ファイルに書いていきます。
RuboCopの設定アレコレ - Qiita
Formatting
手動でインデント揃える鬼畜作業はしたくないので、
ファイルを保存したときに自動一括整形するようにします。
formatterは最初rufoを入れてましたが、シングルクオート設定ができないみたいだったのでこちらもrubocopを使います。
"[ruby]": {
"editor.formatOnSave": true
},
"ruby.format": "rubocop",
"editor.formatOnSaveTimeout": 5000
RubyのREADMEにはタイムアウト時間を1500にしてねと書いてありますが、
1500だと足りないみたいです(ここではまったw)
cf. visual studio code - vscode( vscode-ruby + rubocop ) how to auto correct on save? - Stack Overflow
あとは拡張機能から 「endwise」 も入れておけばひとまず満足しました。
物足りなくなってきたらまた拡張していこうと思います