Technically Impossible

Lets look at the weak link in your statement. Anything "Technically Impossible" basically means we haven't figured out how yet.

VSCodeで最低限のRuby環境構築 - 設定編

Legacy functionality will most likely not receive additional improvements and will be fully removed when the extension hits v1.0

Ruby - Visual Studio Marketplace
Ruby拡張の更新に伴い、この投稿で紹介している設定はLegacy Configurationとなった。
Legacy Configurationでも機能するのだが、今後の更改見込みはなく、Ver 1.0では排除されることになっている。

新バージョンの設定を反映した「VSCodeで最低限のRuby環境構築」の2021年版を投稿した。新しい投稿を参照してほしい。
impsbl.hatenablog.jp
impsbl.hatenablog.jp

とあるRubyの書籍を購入した。書籍で紹介されている内容との依存関係はないのだが、その書籍の筆者はエディタにMeadowを利用しているのだという。
私としてはVSCode (Visual Studio Code)を利用したいところだ。そこでVSCodeに簡易なRuby環境を整えることにした。用意しておきたいのは

Visual Studio Marketplaceから、VSCode用拡張プラグインRuby」を導入するだけで、これらの機能を実装できる。
marketplace.visualstudio.com
とはいえ、いくつかのGemをインストールし、VSCodeへ追加設定を施さなければならない。必要な事柄は同プラグインのページに説明されている。このエントリーでは最低限必要なサマリーを紹介する。
ちなみに、次の環境を前提にしている。

Ruby、DevKit、MSYS2のインストール

RubyInstallerからDevKit付きのインストーラをダウンロードし実行する。私がインストールしたのは、Ruby+Devkit 2.5.1-2 (x64) 。
DevKit付きのインストーラを実行することで、一連のRuby関連のインストール後、Cライブラリが必要なGemをサポートするためのMSYS2のインストーラが起動され、必要な設定なども自動的に処理してくれるので手間がかからない。
rubyinstaller.org
インストール完了後、念のためVSCodeから参照可能であるかを確認しておく。VSCode内のTerminalから、「New Terminal」を選択する。
f:id:espio999:20180913123401p:plain

Window下部に追加されたTERMINALで、次のコマンドを実行する。

ruby -v
gem -v

インストーラがパスを自動的に設定してくれている。それぞれのバージョン番号が次のように表示される。
f:id:espio999:20180913122034p:plain

Visual Studio Code Ruby Extension

前述のVSCode用拡張プラグインRuby」をインストールする。Marketplaceからインストールしても良いし、VSCodeのExtensionsタブからインストールしてもよい。
Extensionsタブからのインストールの場合、検索ボックスに「Ruby」を入力し、そのものずばり「Rubyプラグインをインストールする。このエントリー時点でのバージョンは0.20.0。
f:id:espio999:20180913122202p:plain

念のためMarketplaceのリンクを再掲しておく。
marketplace.visualstudio.com

Gemのインストール

拡張プラグインRuby」は次のGemとの依存関係がある。それぞれのインストール・コマンドを実行する。
プラグインの紹介ページには次のことが記載されているが、ここでは無視している。

You need use Ruby 2.0 or above and you need to update debase to latest beta version gem install debase -v 0.2.2.beta10.

素直に「gem install debase」を実行すれば、同バージョン、あるいは以降の安定版がインストールされる。

Gem 説明 コマンド
rubocop 拡張プラグインと依存関係がある。
lintに必要。
gem install rubocop
ruby-debug-ide 拡張プラグインと依存関係がある。
デバッグに必要。
gem install ruby-debug-ide
debase デバッグに必要。 gem install debase
rcodetools Autocompleteに必要。 gem install rcodetools
ruby-lint lintに必要。 gem install ruby-lint
reek lintに必要。 gem install reek
faster lintに必要。 gem install faster
debride lintに必要。 gem install debride

一連のGemをインストールしたら、念のため次のコマンド群でインストール完了を確認しておくとよい。

gem list rubocop
gem list ruby-debug-ide
gem list debase
gem list rcodetools
gem list ruby-lint
gem list reek
gem list faster
gem list debride

VSCodeの設定

VSCodeの設定タブから「Settings」を選択する。
f:id:espio999:20180913122346p:plain

表示されたSettingsを次の画面のように設定する。
f:id:espio999:20180913122421p:plain

「Lint」の設定項目にある「Edit in settings.json」をクリックする。USER SETTINGSに次のコードを入力する。

{
    "ruby.lint": {
        "reek": true,
        "rubocop": true,
        "ruby": true, //Runs ruby -wc
        "fasterer": true,
        "debride": true,
        "ruby-lint": true
    },
    "ruby.intellisense": "rubyLocate",
    "ruby.codeCompletion": "rcodetools",
    "ruby.format": "rubocop",
    "ruby.useLanguageServer": true,
    "ruby.locate": {
        "exclude": "{**/@(test|spec|tmp|.*),**/@(test|spec|tmp|.*)/**,**/*_spec.rb}",
        "include": "**/*.rb"
    }
}

結果として、画面は次の状態にになる。
f:id:espio999:20180913122705p:plain

ここまでで、このエントリーでの作業は終了。
次のエントリーで、必要な機能が動作しているかを検証する。
impsbl.hatenablog.jp