組み込みのRubyの開発支援機能
VS Codeは、組み込みのRubyの開発支援機能(拡張機能)を備えているので、シンタックスハイライトやかっこ一致などの機能を特別な拡張機能なしに利用できます(表1)。これらは、プライマリサイドバーに拡張機能が表示されている状態で、検索窓に「@builtin ruby」と入力して確認できます。
| 拡張機能 | ID | パブリッシャー | 概要 |
|---|---|---|---|
| Rubyの基本言語サポート | vscode.ruby | vscode | 構文ハイライト、かっこ一致を提供 |
このため、既定で色分けやカッコの強調表示の機能を利用できます。なお、ドキュメントには記載がありませんが、簡単なコード補完機能も備えるようです(図1)。
組み込みのRuby開発支援機能には、特に用意された設定はありません。無効にするには、拡張機能自体を無効にします。なお、本記事では後述するRuby LSPを利用するため、この組み込みのRubyサポート機能はここで無効にしておきます。機能がバッティングして、使い勝手が悪くなったり、思わぬ不具合の原因となる可能性があるためです。
組み込みの開発支援機能は、シンタックスハイライトとカッコの強調表示がその主要な機能であり、本格的な開発には物足りないものです。高度なコード補完や検索機能などが必要であれば、サードパーティー製の拡張機能を利用しましょう。後述するRailsアプリ開発にも有用な開発環境を整えるには、表2の拡張機能をインストールします。Ruby関連の拡張機能は豊富ですが、本稿の作成時点で継続してメンテナンスされているものを紹介します。
| 拡張機能 | ID | パブリッシャー | 概要 |
|---|---|---|---|
| Ruby LSP | Shopify.ruby-lsp | Shopify | Rubyのための高機能な言語サーバ |
| VSCode rdbg Ruby Debugger | KoichiSasada.vscode-rdbg | Koichi Sasada | rdbgによるデバッグのサポート |
以下、この2つの拡張機能について基本的な機能を紹介します。
Ruby LSP
Ruby LSPは、組み込みのRubyサポート機能を超える高機能な言語サーバの拡張機能です。著名なECサイトであるShopifyの運営会社による提供です。以下の機能を備え、基本的に無償で利用できます。
- シンタックスハイライト
- コード補完
- ホバーによるドキュメント表示
- ワークスペース内のシンボルの検索
- コードのアウトライン表示
- RuboCopによる診断
- RuboCopまたはSyntax Treeによる保存時フォーマット
- 入力中の自動フォーマット
- デバッグのサポート
- 定義部への移動
- あいまい検索
- ERBファイルのサポート
Ruby LSPはデバッグをサポートしますが、本記事では後述するVSCode rdbg Ruby Debuggerを使ったデバッグを紹介します。
[NOTE]「ゴーストテキスト」と「次の編集候補」の無効化
VS Codeは、既定でGitHub Copilotによる「ゴーストテキスト」と「次の編集候補」(Next Edit Suggestions≪NES≫)が有効になっており、GitHub CopilotにサインインしているとAI(人工知能)によるコード提案が随時実行されます。拡張機能を積極的に利用したい場合には、この機能を無効にできます(GitHub Copilotが機能していない場合には、ここでの操作は不要です)。
ステータスバーのGitHub Copilotアイコンをクリックして、表示されるメニュー下部の「Rubyのゴーストテキストの候補」のチェックを外します(図2)。これで、Rubyファイルに対してはゴーストテキストが機能しなくなり、同時にNESも機能しなくなります。他の言語では引き続き機能します。
現バージョンのRuby LSPは、ワークスペースのない環境をサポートしていません。Rubyファイルを単独で開くと、図3の警告がポップアップします。後述するVSCode rdbg Ruby Debuggerでもワークスペースの利用が望ましいので、まずはワークスペースを作成してRubyファイルを配置していきましょう。
ワークスペースがGemfileを含まない場合、Ruby LSPはスタンドアロンモードで起動します(図4)。スタンドアロンモードとは、グローバルにインストールされるruby-lsp.gem(Gemとして提供されるRuby LSPの本体)を利用する仕組みです。単一のファイルからなるRubyプログラムを作成、編集する場合にスタンドアロンモードが採用されます。
スタンドアロンモードでは、ワークスペースのフォルダに.ruby-lspフォルダが作成され、Gemfileが自動生成されます。内容はリスト1の通りで、Ruby LSPが使うruby-lsp.gemとdebug.gemへの依存関係が記述されています。
eval_gemfile(File.expand_path("../Gemfile", __dir__))
gem "ruby-lsp", ">= 0.18.0", require: false, group: :development
gem "debug", require: false, group: :development, platforms: :mri
ワークスペースがRuby on Rails(以降、Rails)のプロジェクトである場合、アドオンRuby LSP Railsが有効になります。このアドオンについては、Webアプリ開発の節で紹介します。この場合もワークスペースのフォルダに.ruby-lspフォルダが作成され、Gemfileが自動生成されます。内容はリスト2の通りで、Ruby LSPが使うruby-lsp.gemとruby-lsp-rails.gemへの依存関係が記述されています。
eval_gemfile(File.expand_path("../Gemfile", __dir__))
gem "ruby-lsp", ">= 0.18.0", require: false, group: :development
gem "ruby-lsp-rails", require: false, group: :development
シンタックスハイライトは、既定で組み込みの言語機能と同等の色分けとなります。組み込みの言語機能を使ってきた人にも、違和感なく利用できるでしょう(図5)。
コード補完は、組み込みの機能に比べて大きく強化されており、引数の詳細な説明や、公式マニュアルへのリンクも表示されます(図6)。
ホバーによるドキュメント表示も利用できます(図7)。
VSCode rdbg Ruby Debugger
VSCode rdbg Ruby Debuggerは、Rubyプログラムの実行やデバッグの機能を提供します。VSCode rdbg Ruby Debuggerの利用にはdebug.gemのインストールが必要なので、以下のコマンドであらかじめインストールしておきます。
% gem install debug
拡張機能VSCode rdbg Ruby Debuggerをインストールすると、debug.gemによるデバッグが可能になります。まず、ワークスペースからデバッグしたいRubyファイルを開いた状態で、アクティビティバーの実行とデバッグアイコン
をクリックし、プライマリサイドバーから[実行とデバッグ]をクリックします(図8)。
コマンドパレットに、使用できるデバッガのリストが表示されるので、「Ruby (rdbg)」を選択します(図9)。
launch.jsonファイルが、.vscodeフォルダに作成されます(図10)。このファイルを編集すると、実行・デバッグの設定をカスタマイズできます。
この時点で、デバッグが可能になっているので、デバッグしたいRubyファイルをアクティブにします(launch.jsonファイルは閉じて構いません)。そして、適当な行にブレークポイントを設定します。プライマリサイドバーから[Debug current file with rdbg (…)]アイコン
をクリックするとコマンドパレット「Debug command line」が開くので、実行したいコマンド(通常は「ruby ファイル名」)を入力して[enter]を押します(図11)。
プログラムの実行が開始され、デバッグコンソールに経過が出力されます。ブレークポイントで停止すると、変数やウォッチ式を確認・編集できます。エディタービューの右上にはデバッグコントロールが配置されるので、再開、停止、ステップオーバーなど、デバッグでおなじみの機能を利用できます(図12)。
この記事は参考になりましたか?
- 開発用エディタのド定番「VSCode」を使いこなそう連載記事一覧
-
- VS CodeでRuby開発環境を構築しよう
- Copilot Agents Windowでエージェントファーストに進化したVS Code...
- VSCodeでPHP開発環境を構築しよう
- この記事の著者
-
WINGSプロジェクト 山内 直(WINGSプロジェクト ヤマウチ ナオ)
<WINGSプロジェクトについて>有限会社 WINGSプロジェクトが運営する、テクニカル執筆コミュニティ(代表 山田祥寛)。主にWeb開発分野の書籍/記事執筆、翻訳、講演等を幅広く手がける。 2026年時点での登録メンバは約50名で、現在も執筆メンバを募集中。興味のある方は、どしどし応募頂きたい。著書、記事多数。 RSS X: @WingsPro_info(公式)、@WingsPro_info/wings(メンバーリスト) Facebook <個人紹介>WINGSプロジェクト所属のテクニカルライター。出版社を経てフリーランスとして独立。ライター、エディター、デベロッパー、講師業に従事。屋号は「たまデジ。」。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
-
山田 祥寛(ヤマダ ヨシヒロ)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NECにてシステム企画業務に携わるが、2003年4月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト」代表。主な著書に「独習シリーズ(Java・C#・Python・PHP・Ruby・JSP&サーブレットなど)」「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravelなど)」「改訂3版JavaScript本格入門」「これからはじめるLaravel実践入門」「はじめてのAndroidアプリ開発 Kotlin編 」他、著書多数。
※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です
この記事は参考になりましたか?
この記事をシェア
