SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

DeveloperZine(デベロッパージン)- エンジニアの意思決定を支える技術情報メディア ProductZine

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

開発用エディタのド定番「VSCode」を使いこなそう

VS CodeでRuby開発環境を構築しよう

開発用エディタのド定番「VSCode」を使いこなそう 第18回

WINGSプロジェクト 山内 直[著] / 山田 祥寛[監修]

組み込みのRubyの開発支援機能

 VS Codeは、組み込みのRubyの開発支援機能(拡張機能)を備えているので、シンタックスハイライトやかっこ一致などの機能を特別な拡張機能なしに利用できます(表1)。これらは、プライマリサイドバーに拡張機能が表示されている状態で、検索窓に「@builtin ruby」と入力して確認できます。

表1:組み込みのRubyの拡張機能
拡張機能 ID パブリッシャー 概要
Rubyの基本言語サポート vscode.ruby vscode 構文ハイライト、かっこ一致を提供

 このため、既定で色分けやカッコの強調表示の機能を利用できます。なお、ドキュメントには記載がありませんが、簡単なコード補完機能も備えるようです(図1)。

図1:組み込みのRuby開発支援機能
図1:組み込みのRuby開発支援機能

 組み込みのRuby開発支援機能には、特に用意された設定はありません。無効にするには、拡張機能自体を無効にします。なお、本記事では後述するRuby LSPを利用するため、この組み込みのRubyサポート機能はここで無効にしておきます。機能がバッティングして、使い勝手が悪くなったり、思わぬ不具合の原因となる可能性があるためです。

 組み込みの開発支援機能は、シンタックスハイライトとカッコの強調表示がその主要な機能であり、本格的な開発には物足りないものです。高度なコード補完や検索機能などが必要であれば、サードパーティー製の拡張機能を利用しましょう。後述するRailsアプリ開発にも有用な開発環境を整えるには、表2の拡張機能をインストールします。Ruby関連の拡張機能は豊富ですが、本稿の作成時点で継続してメンテナンスされているものを紹介します。

表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も機能しなくなります。他の言語では引き続き機能します。

図2:ゴーストテキストとNESをRubyで無効化
図2:ゴーストテキストとNESをRubyで無効化

 現バージョンのRuby LSPは、ワークスペースのない環境をサポートしていません。Rubyファイルを単独で開くと、図3の警告がポップアップします。後述するVSCode rdbg Ruby Debuggerでもワークスペースの利用が望ましいので、まずはワークスペースを作成してRubyファイルを配置していきましょう。

図3:ワークスペースがない場合の警告(Ruby LSP)
図3:ワークスペースがない場合の警告(Ruby LSP)

 ワークスペースがGemfileを含まない場合、Ruby LSPはスタンドアロンモードで起動します(図4)。スタンドアロンモードとは、グローバルにインストールされるruby-lsp.gem(Gemとして提供されるRuby LSPの本体)を利用する仕組みです。単一のファイルからなるRubyプログラムを作成、編集する場合にスタンドアロンモードが採用されます。

図4:スタンドアロンモードへの移行(Ruby LSP)
図4:スタンドアロンモードへの移行(Ruby LSP)

 スタンドアロンモードでは、ワークスペースのフォルダに.ruby-lspフォルダが作成され、Gemfileが自動生成されます。内容はリスト1の通りで、Ruby LSPが使うruby-lsp.gemとdebug.gemへの依存関係が記述されています。

リスト1:自動生成される.ruby-lsp/Gemfile(スタンドアロンモード)
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への依存関係が記述されています。

リスト2:自動生成される.ruby-lsp/Gemfile(Railsプロジェクト)
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)。

図5:シンタックスハイライト(Ruby LSP)
図5:シンタックスハイライト(Ruby LSP)

 コード補完は、組み込みの機能に比べて大きく強化されており、引数の詳細な説明や、公式マニュアルへのリンクも表示されます(図6)。

図6:コード補完(Ruby LSP)
図6:コード補完(Ruby LSP)

 ホバーによるドキュメント表示も利用できます(図7)。

図7:ホバーによるドキュメント表示(Ruby LSP)
図7:ホバーによるドキュメント表示(Ruby LSP)

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)。

図8:[実行とデバッグ]をクリック
図8:[実行とデバッグ]をクリック

 コマンドパレットに、使用できるデバッガのリストが表示されるので、「Ruby (rdbg)」を選択します(図9)。

図9:「Ruby(rdbg)」を選択
図9:「Ruby(rdbg)」を選択

 launch.jsonファイルが、.vscodeフォルダに作成されます(図10)。このファイルを編集すると、実行・デバッグの設定をカスタマイズできます。

図10:作成されたlaunch.jsonファイル
図10:作成されたlaunch.jsonファイル

 この時点で、デバッグが可能になっているので、デバッグしたいRubyファイルをアクティブにします(launch.jsonファイルは閉じて構いません)。そして、適当な行にブレークポイントを設定します。プライマリサイドバーから[Debug current file with rdbg (…)]アイコンをクリックするとコマンドパレット「Debug command line」が開くので、実行したいコマンド(通常は「ruby ファイル名」)を入力して[enter]を押します(図11)。

図11:デバッグの開始
図11:デバッグの開始

 プログラムの実行が開始され、デバッグコンソールに経過が出力されます。ブレークポイントで停止すると、変数やウォッチ式を確認・編集できます。エディタービューの右上にはデバッグコントロールが配置されるので、再開、停止、ステップオーバーなど、デバッグでおなじみの機能を利用できます(図12)。

図12:ブレークポイントで停止
図12:ブレークポイントで停止

次のページ
Railsアドオンの主な機能

この記事は参考になりましたか?

開発用エディタのド定番「VSCode」を使いこなそう連載記事一覧

もっと読む

この記事の著者

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編 」他、著書多数。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー