Windows 10のVSCodeでrubyのdebug環境を構築する

# はじめに
一年以上ぶりに、rubyの環境を作ろうとしたら、なかなかうまくいかず、やっと環境ができたので、メモを残します。これで、rubyでstep実行や変数の確認ができるようになります。

# Visual Studio Code のインストール
- [マイクロソフト](https://azure.microsoft.com/ja-jp/products/visual-studio-code/)のページからダウロードしてインストールします。

# Ruby のインストール
- [Ruby Installer](https://rubyinstaller.org/downloads/)のサイトのdevkit付のインストーラーを使ってインストールします。今回使ったのは[rubyinstaller-devkit-2.6.6-1-x64.exe](https://github.com/oneclick/rubyinstaller2/releases/download/RubyInstaller-2.6.6-1/rubyinstaller-devkit-2.6.6-1-x64.exe)です。

# VSCodeの拡張機能をインストール
- VSCodeを起動して、拡張機能の「ruby」を検索して、インストールします。(下図はインストール後の画面)
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239732/3b210b8d-40dc-6863-52e8-724080a2d40c.png)

# Gemをbundleでインストール
- VSCodeのターミナルを開いて`bundle init`します。

```powershell
Windows PowerShell
Copyright (C) Microsoft Corporation. All rights reserved.

新しいクロスプラットフォームの PowerShell をお試しください https://aka.ms/pscore6

PS C:\Users\momoandbanana\Documents\my_ruby_programs\debugenv> bundle init
Writing new Gemfile to C:/Users/momoandbanana/Documents/my_ruby_programs/debugenv/Gemfile
PS C:\Users\momoandbanana\Documents\my_ruby_programs\debugenv> 
```

- すると`Gemfile`が作成されるので、`debase`と`ruby-debug-ide`のGemを追加します。

```ruby:Gemfile
# frozen_string_literal: true

source "https://rubygems.org"

git_source(:github) {|repo_name| "https://github.com/#{repo_name}" }

# gem "rails"
gem "debase" # 追加しました
gem "ruby-debug-ide" # 追加しました
```
- VSCodeのターミナルで`bundle install`でGemをインストールします。

```powershell
PS C:\Users\momoandbanana\Documents\my_ruby_programs\debugenv> bundle init
Writing new Gemfile to C:/Users/momoandbanana/Documents/my_ruby_programs/debugenv/Gemfile
PS C:\Users\momoandbanana\Documents\my_ruby_programs\debugenv> bundle install
Fetching gem metadata from https://rubygems.org/.....
Resolving dependencies...
Using rake 13.0.1
Using bundler 2.1.4
Using debase-ruby_core_source 0.10.9
Using debase 0.2.4.1
Using ruby-debug-ide 0.7.2
Bundle complete! 2 Gemfile dependencies, 5 gems now installed.
Use `bundle info [gemname]` to see where a bundled gem is installed.
PS C:\Users\momoandbanana\Documents\my_ruby_programs\debugenv> 
```

# `launch.json`に設定を記載します。
- rubyのプログラムを用意します。

```ruby:main.rb
puts("hello ruby-debugger !")
```

- `launch.json`を__自動作成させるため__に、VSCodeのメニューから`実行` `構成を開く` を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239732/ddfe4bb2-ec95-298c-18cd-b7eb148b55b9.png)

- すると、どのような構成をしたいのか選択肢で質問されるので`ruby`を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239732/e804a7a2-8899-4b89-f24d-b9b8c94543a0.png)

- さらに`debug local file`を選びます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239732/19f47699-9133-ebcb-1049-285b3d2b478b.png)

- すると`launch.json`ファイルが出来上がるので、`program`の行を下記のように修正します。

```json:launch.json
{
    // IntelliSense を使用して利用可能な属性を学べます。
    // 既存の属性の説明をホバーして表示します。
    // 詳細情報は次を確認してください: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "Debug Local File",
            "type": "Ruby",
            "request": "launch",
            // "program": "${workspaceRoot}/main.rb", コメントにしました。
            "program": "${file}", // 変更しました。
        }
    ]
}
```

# デバッグを開始します
- __ソースファイルを開いて__から、VSCodeの`実行` `デバッグの開始`でデバッグします。下図は`main.rb`の1行目にブレークポイントを設定して、ブレークされたところです。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/239732/7ec93444-187e-0572-cd04-559fa61143c0.png)

以上です。
実際の作業は、[githubで記録](https://github.com/momoandbanana22/TwitterReader/issues/1)しました。出来上がった各設定ファイルは[このコミット](https://github.com/momoandbanana22/TwitterReader/commit/aa976088d8ff9b74b1cde78660240abf7af33716)にあるものです。