🚀 VS Code で で入手しましょう!

Visual Studio Code で Ruby を使う

Ruby は、シンプルさと生産性で知られる、動的なオープンソースのプログラミング言語です。表現力豊かでエレガントな構文を持つ Ruby の哲学の一部は、開発者を幸せにすることです。さまざまなフレームワークを使用した Web 開発や、プロトタイプを構築する際の迅速なイテレーションを可能にするスクリプト作成によく使用されます。

このトピックでは、Ruby LSP 拡張機能を使用して、Visual Studio Code 内で Ruby を設定および使用する方法について詳しく説明します。

Ruby extension banner

インストール

バージョンマネージャーを介して Ruby をインストールする

Ruby は一部のオペレーティングシステム (macOS や一部の Linux ディストリビューションなど) にデフォルトでインストールされていますが、Windows、macOS、Linux で新しいバージョンの Ruby にアクセスできるように、rbenv などのバージョンマネージャーを使用することをお勧めします。お使いのプラットフォーム用のインストールガイダンスに従ってください。

: マシンに新しいツールセットをインストールする場合と同様に、プラットフォームの PATH 変数で更新されたツールセットの場所を使用するには、ターミナル/コマンドプロンプトと VS Code インスタンスを再起動する必要があります。

VS Code に Ruby LSP 拡張機能をインストールする

拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) から VS Code 内で Ruby LSP 拡張機能を見つけてインストールし、「Ruby LSP」を検索します。

Ruby LSP extension in the Extensions view

このトピックでは Ruby LSP の多くの機能について説明しますが、拡張機能のドキュメントリポジトリも参照できます。

インストールを確認する

インストール後、言語ステータス項目を確認して、Ruby LSP サーバーのステータスを確認します。バージョンマネージャーが構成されている場合、プロジェクトに適した Ruby バージョンが表示されるはずです。サーバーのステータスは、開始中または実行中と表示されるはずですが、エラーは表示されません。

Ruby LSP language status center

拡張機能は、言語サーバー gem ruby-lsp を含むカスタムバンドルを使用して、.ruby-lsp フォルダーを自動的に生成します。構成は不要です。

デフォルトでは、拡張機能は使用している Ruby バージョンマネージャーを自動的に検出し、それに応じて適切なバージョンとパスを使用しようとします。その動作をカスタマイズする場合は、ユーザー設定で次の構成を設定します。

{
  "rubyLsp.rubyVersionManager": {
    "identifier": "rbenv"
  }
}

拡張機能は、ruby-lsp 言語サーバー gem を定期的に自動更新しようとします。それを強制的に実行したい場合は、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用して、Ruby LSP: 言語サーバー gem を更新を実行します。

問題が発生した場合は、次の手順についてトラブルシューティングを参照してください。

主な機能

ナビゲーションと IntelliSense

Ruby LSP は、定義へ移動、ホバー、ワークスペースシンボル、ドキュメントシンボル、補完、シグネチャヘルプなど、ナビゲーションと IntelliSense に関連するいくつかの機能を提供します。

VS Code でソースコードをすばやく移動する方法の詳細については、コードナビゲーションを確認してください。

インレイヒント

Ruby LSP は、コード内の推測された値または暗黙的な値に関する役立つ情報を表示できます。下の例では、空の rescue 呼び出しでレスキューされる暗黙的な例外クラスとして StandardError が表示されていることがわかります。

Ruby program with inlay hints displayed

インレイヒントはコードを理解するのに役立ちますが、エディター > インレイヒント: 有効設定 (editor.inlayHints.enabled) を使用して機能を無効にしたり、Ruby LSP に対してのみこの機能を無効にするには、次を使用することもできます。

"rubyLsp.enabledFeatures": {
    "inlayHint": false,
}

セマンティック構文の強調表示

Ruby LSP は、プロジェクトのソースコードを深く理解しているため、セマンティック構文の強調表示とスタイル設定を使用できます。

たとえば、次の点を強調表示できます。

  • ローカル変数と混同することなく、メソッド呼び出しを一貫して強調表示します。
  • ローカル引数 (メソッド、ブロック、またはラムダ引数など) を、それらが存在するスコープ内で一貫して強調表示します。

Ruby LSP semantic highlighting

: このスクリーンショットは、Ruby 拡張機能パックに含まれている Spinel テーマを使用しています。テーマは、Ruby ファイルの豊富な強調表示を提供するために、Ruby LSP によって公開された情報を使用する必要があります。

この機能を使用するには、エディターでセマンティック強調表示が有効になっている必要があります。

"editor.semanticHighlighting.enabled": true,

Lint とフォーマット

デフォルトでは、Ruby LSP は RuboCop との統合を通じて Lint とフォーマットを提供します。⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I) を使用するか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) またはエディターのコンテキストメニューから ドキュメントのフォーマット コマンドを実行して、Ruby ファイルをフォーマットできます。

プロジェクトで RuboCop を使用していない場合、Ruby LSP は SyntaxTree を使用してファイルをフォーマットします。

Linting a Ruby file

保存時にフォーマッターを実行 (エディター: 保存時にフォーマット) して、作業中に Ruby コードを自動的に適切にフォーマットすることもできます。これを行うには、保存時にフォーマットを有効にする必要があります。

"editor.formatOnSave": true

Ruby LSP 拡張機能は、入力時にフォーマットを使用した便利な補完も提供します。たとえば、コメント行を自動継続したり、end トークン、パイプ、または文字列補間の中かっこを自動的に閉じたりします。入力時にフォーマットを使用するには、エディターで有効になっていることを確認してください。

"editor.formatOnType": true

クイックフィックス

リンターがソースコードでエラーと警告を見つけた場合、Ruby LSP は多くの場合、推奨されるクイックフィックス (コードアクションとも呼ばれます) を提供できます。これは、エディターの電球のホバーを介して利用できます。⌘. (Windows、Linux Ctrl+.) を使用して、利用可能なクイックフィックスをすばやく開くことができます。

Quick Fixes for linting violations

さらに、コードアクションウィジェット: 近隣のクイックフィックスを含める (editor.codeActionWidget.includeNearbyQuickFixes) はデフォルトで有効になっている設定であり、⌘. (Windows、Linux Ctrl+.) (コマンド ID editor.action.quickFix) から行内の最も近いクイックフィックスを、カーソルがその行のどこにあってもアクティブにします。

このコマンドは、クイックフィックスでリファクタリングまたは修正されるソースコードを強調表示します。通常のコードアクションと修正以外のリファクタリングは、カーソル位置でアクティブにすることができます。

リファクタリング

クイックフィックスに加えて、Ruby LSP はコードアクションを通じてリファクタリングオプションも提供します。たとえば、Ruby 式をワンクリックでローカル変数に抽出できます。

Refactor extract to variable

デバッグ

Ruby LSP 拡張機能は、debug gem (Ruby の公式デバッガー) を使用したデバッグをサポートしています。または、開発者は VS Code RDBG 拡張機能をインストールして、デバッグ機能を取得することもできます。

次のドキュメントは、Ruby LSP のデバッガークライアント用です。構成方法については、RDBG の README を参照してください。

テストのデバッグ

Ruby LSP は、単体テストの上に CodeLens ボタンを追加します。これにより、テストエクスプローラーで例を実行したり、新しいターミナルで実行したり、デバッガーを起動したりできます。これらの用途には、構成は必要ありません。

Test running code lenses

起動タスクによるデバッグ

起動タスクを介してデバッガーを使用するには、launch.json ファイルにデバッグ構成を作成する必要があります。構成を使用すると、実行するプログラムを構成できます。

Ruby プログラムの launch.json を作成するには

  1. デバッグビュー (⇧⌘D (Windows、Linux Ctrl+Shift+D)) で、launch.json ファイルを作成しますリンクを選択します。
  2. これにより、いくつかのデフォルトの起動構成タイプを含むドロップダウンが表示されます。最初のオプションを選択できますが、さらに構成を追加します。
  3. 作成した .vscode/launch.json ファイルを編集して、デバッグ用に Ruby プログラムを起動するさらに多くの方法を追加できるようになりました。

{
  "version": "0.2.0",
  "configurations": [
    // Launch the debugger for any given program. In this case, it will run the current file using Ruby
    {
      "type": "ruby_lsp",
      "name": "Debug",
      "request": "launch",
      "program": "ruby ${file}"
    },
    // Launch the debugger for the current test file
    {
      "type": "ruby_lsp",
      "request": "launch",
      "name": "Debug test file",
      "program": "ruby -Itest ${relativeFile}"
    },
    // Attach the debugger client to an existing Ruby process that has already been launched with the debugger
    // server
    {
      "type": "ruby_lsp",
      "request": "attach",
      "name": "Attach to existing server"
    }
  ]
}

起動構成を追加した後、ブレークポイントを追加して起動タスクを実行することで、Ruby プログラムをデバッグできます。

  1. Ruby ファイルを開き、エディターの左側のガターをクリックしてブレークポイントを設定します。赤い点として表示されるはずです。

    Red breakpoint dot in the left gutter of the editor

  2. 実行とデバッグで目的のタスクを選択し、デバッグ開始ボタン (デフォルトのキーボードショートカット F5) をクリックして、デバッグを開始します。

    Debug session stopped at breakpoint

次のステップ

これは、VS Code 内の Ruby LSP 拡張機能の機能を示す簡単な概要でした。詳細については、特定のVS Code エディター構成の調整方法など、Ruby LSP ドキュメントで提供されている詳細を参照してください。

Ruby LSP 拡張機能の最新機能/バグ修正の最新情報を入手するには、サーバーと VS Code 拡張機能の実装の両方を含むモノレポのリリースページを参照してください。

問題や機能リクエストがある場合は、Ruby LSP のGitHub リポジトリに自由にログを記録してください。

VS Code の詳細を知りたい場合は、次のトピックをお試しください。