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へ追加設定を施さなければならない。必要な事柄は同プラグインのページに説明されている。前エントリーで、それらの導入作業を紹介した。

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

このエントリーでは、必要な機能が動作しているかを検証する。
ちなみに、次の環境を前提にしている。

テスト用Workspaceからテスト・コード・ファイルの作成まで。

VSCodeにてフォルダを開き、そのフォルダをWorkspaceに設定する。
任意のフォルダを作成したら、
f:id:espio999:20180913124229p:plain

ファイル・メニューから「Add Folder to Workspace...」を選択し、作成したフォルダを追加する。
f:id:espio999:20180913124301p:plain

私の場合は、「TEST-RUBY」というフォルダを登録した。
テスト・コード用のファイルを作成する。VSCode内のEXPLORERにあるテスト用Workspace(ここではTEST-RUBY)にあるNew Fileアイコンをクリックする。
f:id:espio999:20180913124500p:plain

「main.rb」というファイルを作成する。
f:id:espio999:20180913124512p:plain

テスト・コード

次のコードをテスト用に用いる。

def printHello
    puts "hello"
    
end

printHello

AutocompleteやIntellisenseが動作するかを検証するので、コピー&ペーストで入力せず、1文字ずつ入力していく。入力は次のパラグラフ以降で検証しながら行う。

IntellisenseとAutocompleteの検証

「def」と入力しようとすると、2つの候補が提案された。Intellisenseが機能していることがわかる。
f:id:espio999:20180913124623p:plain

「method definition...」と表示されている方を選択すると、endまでの入力が補完された。Autocompleteが機能していることがわかる。
f:id:espio999:20180913124715p:plain

printHelloメソッドの記述を完了させる。メソッド呼び出しのコードを記述しようとすると、定義したメソッドの記述にもIntellisenseが機能していることがわかる。
f:id:espio999:20180913124740p:plain

一行目の記述を次のコードの置き換える。

def printHello{}

マウス・カーソルをコード付近へ近づけると、syntax errorが表示される。Lintが機能していることがわかる。
f:id:espio999:20180921224145p:plain

デバッグの検証。

ブレークポイントを検証するため、任意の行へ「puts "stop after here"」とコードを挿入する。私の場合は、6行目に挿入した。
7行目の数字の左側にカーソルを移動すると、赤丸が表示されるのでクリックする。ここがブレークポイントとなり、デバッグ中に一時停止する。
f:id:espio999:20180913124814p:plain

Debugタブを選択し、「Start Debugging」の緑矢印をクリックする。初回はlaunch.settingが表示されるが、無視する。
f:id:espio999:20180913124845p:plain

コードが実行され、画面下部の「DEBUG CONSOLE」コンソールに「stop after here」と表示されているが、「hello」はまだ表示されていない。
f:id:espio999:20180913125033p:plain

7行目のprintHelloメソッド呼び出し直前で一時停止している。ブレークポイントが機能していることがわかる。
f:id:espio999:20180913125052p:plain

デバッグを継続するために、画面上部にある「Continue」の矢印をクリックする。
f:id:espio999:20180913125137p:plain

改めて「DEBUG CONSOLE」コンソールを確認すると、「stop after here」に続いて「hello」が表示された。デバッグが期待通りに機能していることがわかる。
f:id:espio999:20180913125156p:plain

必要な一連の機能が動作していることが確認できた。