Visual Studio Code での Ruby
Rubyは、シンプルさと生産性で知られる動的オープンソースプログラミング言語です。表現力豊かでエレガントな構文を持ち、開発者を幸せにすることがRubyの理念の一部です。ウェブ開発ではさまざまなフレームワークとともに、またスクリプト作成においてはプロトタイプ構築時に迅速な反復作業を可能にするためによく使用されます。
このトピックでは、Ruby LSP拡張機能を使用して、Visual Studio CodeでRubyをセットアップし使用する方法について詳しく説明します。
インストール
バージョンマネージャーを介してRubyをインストールする
Rubyは一部のオペレーティングシステム (macOSや一部のLinuxディストリビューションなど) にデフォルトでインストールされていますが、Windows、macOS、Linuxで新しいバージョンのRubyにアクセスできるように、rbenvなどのバージョンマネージャーを使用することをお勧めします。お使いのプラットフォームのインストールガイドに従ってください。
注: マシンに新しいツールセットをインストールする場合と同様に、プラットフォームのPATH変数で更新されたツールセットの場所を使用するには、ターミナル/コマンドプロンプトとVS Codeのインスタンスを再起動してください。
VS CodeにRuby LSP拡張機能をインストールする
VS Code内で拡張機能ビュー (⇧⌘X (Windows、Linux Ctrl+Shift+X)) を介してRuby LSP拡張機能を見つけてインストールし、「Ruby LSP」を検索できます。
このトピックではRuby LSPの多くの機能について説明しますが、拡張機能のドキュメントおよびリポジトリも参照できます。
インストールの確認
インストール後、言語ステータス項目を確認してRuby LSPサーバーのステータスを確認します。バージョンマネージャーが構成されている場合、プロジェクトに適したRubyバージョンが表示されるはずです。サーバーのステータスは「起動中」または「実行中」と表示され、エラーではないはずです。
拡張機能は、言語サーバーgem ruby-lsp
を含むカスタムバンドルとともに、.ruby-lsp
フォルダーを自動的に生成します。設定は不要です。
デフォルトでは、拡張機能は使用しているRubyバージョンマネージャーを自動的に検出し、それに応じて適切なバージョンとパスを使用しようとします。この動作をカスタマイズしたい場合は、ユーザー設定で以下の構成を設定してください。
{
"rubyLsp.rubyVersionManager": {
"identifier": "rbenv"
}
}
拡張機能は、ruby-lsp
言語サーバーgemを定期的に自動更新しようとします。強制的に更新したい場合は、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) を使用して、Ruby LSP: Update language server gem を実行してください。
何か問題が発生した場合は、次のステップとしてトラブルシューティングを参照してください。
主な機能
ナビゲーションとIntelliSense
Ruby LSPは、定義へ移動、ホバー、ワークスペースシンボル、ドキュメントシンボル、補完、シグネチャヘルプなど、いくつかのナビゲーションおよびIntelliSense関連機能を提供します。
VS Codeでソースコード内を迅速に移動する方法について詳しく知るには、コードナビゲーションを参照してください。
インレイヒント
Ruby LSPは、コード内の推論された値や暗黙的な値に関する有用な情報を表示できます。以下の例では、空のrescue
呼び出しで暗黙的に捕捉されている例外クラスとしてStandardError
が表示されているのがわかります。
インレイヒントはコードの理解に役立ちますが、エディター > インレイヒント: 有効設定 (editor.inlayHints.enabled) を介してこの機能を無効にすることも、Ruby LSPのみでこの機能を無効にするには以下を使用することもできます。
"rubyLsp.enabledFeatures": {
"inlayHint": false,
}
セマンティックシンタックスハイライト
Ruby LSPは、プロジェクトのソースコードを豊富に理解しているため、セマンティックシンタックスハイライトとスタイル設定を使用できます。
たとえば、次のような強調表示が可能です。
- メソッド呼び出しを一貫して強調表示し、ローカル変数と混同しないようにします。
- ローカル引数 (メソッド、ブロック、ラムダ引数など) を、それらが存在するスコープ内で一貫して強調表示します。
注: このスクリーンショットは、Ruby 拡張機能パックに含まれる Spinel テーマを使用しています。テーマは、Rubyファイルに豊富なハイライトを提供するために、Ruby LSPによって提供される情報を使用する必要があります。
この機能を使用するには、エディターでセマンティックハイライトが有効になっている必要があります。
"editor.semanticHighlighting.enabled": true,
Lintingとフォーマット
デフォルトでは、Ruby LSPはRuboCopとの統合を通じてLintingとフォーマットを提供します。Rubyファイルは、⇧⌥F (Windows Shift+Alt+F、Linux Ctrl+Shift+I) を使用するか、コマンドパレット (⇧⌘P (Windows、Linux Ctrl+Shift+P)) またはエディターのコンテキストメニューからドキュメントのフォーマットコマンドを実行してフォーマットできます。
プロジェクトがRuboCopを使用しない場合、Ruby LSPはSyntaxTreeを使用してファイルをフォーマットします。
作業中にRubyコードを自動的に適切にフォーマットするには、保存時にフォーマッターを実行することもできます (エディター: 保存時にフォーマット)。これを行うには、保存時のフォーマットを有効にする必要があります。
"editor.formatOnSave": true
Ruby LSP拡張機能は、入力時のフォーマットを使用して便利な補完も提供します。たとえば、コメント行を自動で継続したり、end
トークン、パイプ、または文字列補間の中括弧を自動で閉じたりします。入力時のフォーマットを使用するには、エディターで有効になっていることを確認してください。
"editor.formatOnType": true
クイックフィックス
リンターがソースコード内でエラーや警告を検出した場合、Ruby LSPはしばしば提案されたクイックフィックス (コードアクションとも呼ばれる) を提供でき、これらはエディターの電球ホバーで利用できます。使用可能なクイックフィックスは、⌘. (Windows、Linux Ctrl+.) を介して素早く開くことができます。
さらに、コードアクションウィジェット: 近隣のクイックフィックスを含める (editor.codeActionWidget.includeNearbyQuickFixes) は、デフォルトで有効になっている設定であり、カーソルがその行のどこにあっても、⌘. (Windows、Linux Ctrl+.) (コマンドID editor.action.quickFix
) から行内の最も近いクイックフィックスをアクティブ化します。
このコマンドは、クイックフィックスでリファクタリングまたは修正されるソースコードをハイライト表示します。通常のコードアクションと修正以外のリファクタリングは、カーソル位置で引き続きアクティブ化できます。
リファクタリング
クイックフィックスに加えて、Ruby LSPはコードアクションを介してリファクタリングオプションも提供します。たとえば、Ruby式をワンクリックでローカル変数に抽出できます。
デバッグ
Ruby LSP拡張機能は、debug gem (Rubyの公式デバッガー) を使用したデバッグをサポートしています。あるいは、開発者はデバッグ機能を得るためにVS Code RDBG拡張機能もインストールできます。
以下のドキュメントはRuby LSPのデバッガークライアントに関するものです。構成方法については、RDBGのREADMEを参照してください。
テストのデバッグ
Ruby LSPは、ユニットテストの上にCodeLensボタンを追加し、テストエクスプローラーでサンプルを実行したり、新しいターミナルで実行したり、デバッガーを起動したりできるようにします。これらの用途では、設定は不要です。
起動タスクを介したデバッグ
起動タスクを介してデバッガーを使用するには、launch.json
ファイル内にデバッグ構成を作成する必要があります。この構成により、実行するプログラムを設定できます。
Rubyプログラムのlaunch.json
を作成する
- デバッグビュー (⇧⌘D (Windows、Linux Ctrl+Shift+D)) で、launch.json ファイルを作成リンクを選択します。
- これにより、いくつかのデフォルトの起動構成タイプのドロップダウンが表示されます。最初のオプションを選択できますが、さらに多くの構成を追加します。
- これで、作成された
.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プログラムをデバッグできます。
-
Rubyファイルを開き、エディターの左側のガターをクリックしてブレークポイントを設定します。赤い点として表示されるはずです。
-
実行とデバッグの下で目的のタスクを選択し、デバッグ開始ボタン (デフォルトのキーボードショートカット F5) をクリックしてデバッグを開始します。
次のステップ
これは、VS CodeにおけるRuby LSP拡張機能の機能を示す簡単な概要でした。詳細については、特定のVS Codeエディターの構成を調整する方法など、Ruby LSPのドキュメントに記載されている詳細を参照してください。
Ruby LSP拡張機能の最新機能/バグ修正に関する情報については、サーバーとVS Code拡張機能の実装の両方を含むモノレポのリリースぺージを参照してください。
何か問題や機能リクエストがある場合は、Ruby LSPのGitHubリポジトリに気軽にログを記録してください。
VS Code についてさらに詳しく知りたい場合は、以下のトピックを試してください
- 基本的な編集 - VS Code エディターの基本事項を簡単に紹介します。
- 拡張機能をインストールする - マーケットプレイスで利用可能な他の拡張機能について学びます。
- コード ナビゲーション - ソースコード内をすばやく移動します。