46
Help us understand the problem. What are the problem?

More than 1 year has passed since last update.

posted at

updated at

Organization

VSCodeでRubyを書く準備

Rubyを書き始めるにあたり、WebStormからVSCodeに完全移行しました。RubyMineまで買えない :money_with_wings:
1年半ほど前に使ったときは、動作がモッタリしてるな〜という印象でしたが(Sublimeが軽快すぎて)
今使ってみると結構さっくさくになってる!快適!
(ちなみにキーバインドはSublimeのバインドがそのまま使えて助かりました。癖ってなかなか変えられないですね...)

拡張機能 「Ruby」 をインストール

拡張機能検索で「ruby」と打てば1番上にでてきます。
Ruby言語に関して、デバッガー、Linter、自動補完など大体のことをカバーしてくれる必須拡張機能です。
この拡張機能の設定をしていきます。

Linter

スタイルガイドに沿わない汚いコードを怒ってほしい!のでlinterをいれます。

こんな感じ
Pasted_Image_2019_07_11_22_29.png
linterは rubocop にしました。
まずgemをグローバルインストールします。

$ gem install rubocop

デフォルトではlinterはオフになっているので、 VSCodeの settings.json で設定を書き加えます。

settings.json
"ruby.lint": {
  "rubocop": true
},


settings.json の開き方
⌘+, でGUIの設定画面を開き、右上のカッコ記号をクリックで切り替えられます
Settings_—_cl-bandai-brappers.png

以上!

もしエラーがでてたらVSCodeを再起動orリロードするか、それでもだめならパスの問題かもしれないです。
[Mac]VScode で ruby-rubocop が動かなくなったら executePath を設定してみよう - Qiita

より詳しい設定をしたい場合は、 .rubocop.yml ファイルに書いていきます。
RuboCopの設定アレコレ - Qiita

Formatting

手動でインデント揃える鬼畜作業はしたくないので、
ファイルを保存したときに自動一括整形するようにします。
formatterは最初rufoを入れてましたが、シングルクオート設定ができないみたいだったのでこちらもrubocopを使います。

settings.json
"[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」 も入れておけばひとまず満足しました。
物足りなくなってきたらまた拡張していこうと思います :smiley:

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
46
Help us understand the problem. What are the problem?