#16: 『プロを目指す人のための Ruby 入門』を購入、VSCode のセットアップ

『パーフェクト Ruby』に引き続き『プロを目指す人のための Ruby 入門』も購入しました。複数の書籍を並行して読んでいく方が理解しやすいだろうと思いまして。

今日やったこと(Done)

VSCodeRuby 用の拡張をインストールした。検索するとトップに出てくる Peng Lv さん作のもの。

Image from Gyazo

rubocop をインストール。

$ gem install rubocop

$ rubocop -v
0.89.0

EmacsVim でいう quickrun に相当する VSCode の拡張 Runner をインストール。安心と信頼の mattn さん作。Ctrl-Shift-R で実行される。

いまのところ VSCode の設定 settings.json はこうなっている。

{
    "workbench.colorTheme": "Default High Contrast",
    "editor.formatOnSave": true,
    // スペースを表示
    "editor.renderWhitespace": "all",
    // タブをスペース2個に変更
    "editor.tabSize": 2,
    // 折り返し
    "editor.wordWrap": "on",
    "workbench.iconTheme": "material-icon-theme",
    // Ruby
    "ruby.codeCompletion": "rcodetools",
    "ruby.format": "rubocop",
    "ruby.intellisense": "rubyLocate",
    "ruby.lint": {
        "rubocop": false
    },
    "ruby.useLanguageServer": true,
    // Runner
    "runner.extensionMap": {
        "rb": "ruby",
    },
}

標準の REPL irb よりも高機能らしい Pry をインストール。

$ gem install pry

$ pry -v
Pry version 0.13.1 on Ruby 2.7.1

linter? reek をインストール。

$ gem install reek

コード補完を担当する Solargraph をインストール。

$ gem install solargraph

おっと、エラーになってしまいました。

ERROR:  Error installing solargraph:
    invalid gem: package is corrupt, exception while verifying: undefined method `size' for nil:NilClass (NoMethodError) in /Users/ryocalm/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/cache/nokogiri-1.10.10.gem

スクレイピングの gem、Nokogiri のインストールがエラーになっているようです。 こちら(nokogiri/CHANGELOG.md)を参照して、1.10.10 が失敗するようなので代わりに 1.11.0.rc2 を入れてみます。

$ gem install --prerelease nokogiri

あらためて Solargraph をインストールしようとしたところ、cache に残っている nokogiri-1.10.10 が邪魔になっているようだったので削除します。

$ rm -f ~/.rbenv/versions/2.7.1/lib/ruby/gems/2.7.0/cache/nokogiri-1.10.10.gem

その上で gem install solargraph すると無事インストールできました。

デバッグ用の 設定

VSCode Ruby 拡張の公式ドキュメントを確認します。

ruby 2.x 系の場合は以下の gem をインストールするようにとのこと。

$ gem install ruby-debug-ide
$ gem install debase

わかったこと(Fact)

  • VSCode で保存する操作にやたら時間がかかる。format が遅いのだろうか。
  • ただ 10 行くらいの fizzbuzz を書いただけのファイルなのに 2,3 秒待たされるのはちょっと許容できないなぁ。
    • format を rubocop から solargraph に変更したら快適になった!
    // "ruby.format": "rubocop",
    "solargraph.formatting": true,
  • gem コマンドのヘルプは以下のようにして確認できる。いろいろオプションがあるので雑にググるよりも公式ヘルプを手元で確認した方がずっとよいだろう。
    • gem help list
    • gem help install

参考文献(References)

チェリー本

VSCode セットアップ

その他

そのうちやること(Someday)

  • [ ] VSCode のデバッガの設定 launch.json
  • [ ] Ruby を書くためのエディタの設定(Emacs
  • [ ] bash の設定ファイルに必要なエイリアスを追加する。