RubyMine 2024.2 がリリースされました!

## 皆さん、こんにちは！

新しいバージョンの RubyMine が利用可能になったことをお知らせします。弊社の[ウェブサイト](https://www.jetbrains.com/ruby/download) や無料の [Toolbox App](https://www.jetbrains.com/toolbox-app/)、あるいは Ubuntu 用の [snaps](https://snapcraft.io/rubymine) からダウンロードできます。

RubyMine 2024.2 からは、IDE を中国語、韓国語、日本語で使用する場合に言語サポートプラグインをインストールする必要がなくなります。これらの言語パッケージが IDE に最初から同梱されるようになりました。

もう一つの大きな改善点は、新しいUIがRubyMine 2024.2でデフォルトになったことです。詳細は[専用のブログ記事](https://blog.jetbrains.com/blog/2024/07/08/the-new-ui-becomes-the-default-in-2024-2/)をご覧ください。

新機能に関しては、Stimulusサポート、Railsの更新、AI補完の改善、カスタムRuboCop設定など、いくつかのエキサイティングなアップデートがあります。以下に最も注目すべき機能の概要を示します。今回のリリースの詳細については、[What’s New](https://www.jetbrains.com/ruby/whatsnew/)ページをご覧ください。

## Stimulus

RubyMine 2024.2は、Stimulusの組み込みサポートを提供しています。これには、コード補完、ナビゲーション、およびリネームリファクタリングが含まれます。StimulusプラグインはRubyMineに同梱されており、`.erb` ファイルで動作します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/d1cd059c-4d86-2c3a-4825-5bd8573d3d7b.png)


## Rails

### Kamal 構成ファイルの補完

RubyMineは、Kamal構成ファイルのコード補完を提供するようになりました。`deploy.yaml`および`.env`ファイルを編集する際には、Kamal特有のプロパティに対する補完候補が表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/5badcc60-0dbb-c4a0-69b9-05e069a53239.png)

### レート制限のためのコードインサイト

Rails 8は、コントローラーで使用するための[rate_limit](https://www.shakacode.com/blog/rails-8-adds-rate-limiting-to-action-controller/)関数を導入しました。この機能の使用体験を向上させるために、コードハイライトやコード補完を含むコードインサイトを実装しました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/5e1b84ff-d6b9-6353-51c1-0f45c9d3b349.png)

### ブラウザガードのためのコードインサイト

RubyMine 2024.2では、ブラウザガードメソッドのためのコードインサイトを追加しました。これには、`allow_browser`関数のハイライトと、ブラウザ名およびonly引数の補完が含まれます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/89427cf4-929b-059b-052b-5ad780f4ff37.png)

### Rails Structureビューにおけるモデルのバリデーションとコールバック

モデルのバリデーションとコールバックを構造ビューで表示し、必要に応じて非表示にすることができます。さらに、`after_create`キーワードやメソッドなど、特定の構文で使用されるコールバックも表示されます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/2c37d9c0-92a6-86b5-9a49-c2681e0d5c53.png)

## Ruby

RubyMineは、プロジェクトを開く際に設定されたRuby SDKを確認し、モジュール構成ファイルと一致するSDKがすでにインストールされている場合、適切なSDKを選択するよう提案します。rbenv、RVM、またはasdfを使用している場合、RubyMineはプロジェクト内の構成ファイルに基づいて適切なバージョンのRuby SDKをインストールするよう提案します
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/1299489e-7dbe-8a12-f85c-dd57ce66882f.png)

## AI Assistant

### インラインAIベースの補完（行末）

AIアシスタントの補完機能は、行末の内容でアクティブにすることができます。つまり、`str.<caret>`、`::`、および二項式の後でも機能します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/1824e047-4caa-6759-3dd6-3c1bfd5a9531.png)

### より優れたマルチラインコード補完

マルチラインコード補完のプロンプトは、特定の技術的な詳細を要求するようになり、より関連性の高い提案を提供します。これらの詳細には、使用しているRubyのバージョン、RailsプロジェクトかGemプロジェクトか、使用しているテストフレームワーク、現在のファイル名、およびプロジェクトで最も人気のある5つのGemの名前が含まれます。

### 改良されたRailsコンテキスト

AIアシスタントは、Railsアプリケーションのコンテキストをより効果的に処理します。たとえば、コントローラーのコード説明を要求する際に、AIアシスタントは対応するモデルやルートも考慮するようになりました。

## 新しいターミナルでのRuby関連コマンドの補完

新しいターミナルは、コマンド、オプション、サブコマンド、引数などの自動補完を提供します。RubyMine 2024.2では、以下のコマンドの補完を追加しました：`ruby`、`rails`、`rake`、`bundle`、`rbenv`、`irb`、`pry`、`rbs`、そして`rspec`。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/3f02f50e-abcd-c8bc-18f2-cd635b1dcca5.png)

## カスタムRuboCop設定

*Settings | Tools | RuboCop* にて、カスタムRuboCop設定ファイルを選択できるようになりました。RubyMineは、`--config`オプションを使用して、設定ファイルへのパスをRuboCopコマンドの引数として渡します。これにより、リモートSDKでも動作することが保証されます。

## TypeScriptファイルを直接実行およびデバッグ

追加の設定なしでTypeScriptファイルを実行およびデバッグできるようになりました。ファイルコンテキストメニュー、Runウィジェット、*Current File*設定を含むさまざまなエントリーポイントから実行できます。

## RailsプロジェクトのためのJavaScriptフレームワークとしてのBun

Railsバージョン7.1.0.beta1以降で新しいアプリケーションを作成する際に、JavaScriptフレームワークとして[Bun](https://bun.sh/)を指定できるようになりました。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/bc36b03f-8d72-a522-4b7a-766281a2e1ef.png)

## リーダーモードとクイックドキュメントでのMarkdownレンダリング

リーダーモードとクイックドキュメントポップアップでMarkdownレンダリングが利用できるようになりました。この機能は、ファイルの先頭に `# :markup: markdown` ディレクティブがある場合、またはプロジェクトルートに `markup: markdown` という行を含む `.rdoc_options` ファイルがある場合に機能します。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/3866683/ef085d29-b826-c7b9-7aca-a35cae33a12c.png)


新しい機能について知るために、[XでRubyMine](https://twitter.com/jetbrainsjp)をフォローしてください。


以下のコメント欄でご意見を共有し、[課題管理システム](https://youtrack.jetbrains.com/issues/ruby?_gl=1*w3z7hz*_gcl_aw*R0NMLjE3MjM1MzcxODEuQ2owS0NRandpT3kxQmhEQ0FSSXNBREd2UW5EN19rWlh6SXgxM0RzVHpGOXB5RDhCeWhqbWRGdHNiM0xGMUxmNE9vQVd0S1QwclItX3MxOGFBak9iRUFMd193Y0I.*_gcl_au*MTUzNzAxMTIxNC4xNzE4ODEyNDQ5*_ga*MTg5ODg4MTUzMi4xNzA4MzU3NDg5*_ga_9J976DJZ68*MTcyNDIyNjkzMS4yMjAuMS4xNzI0MjI3NjU2LjUzLjAuMA..)で新しい機能の作成や投票を行ってください。

開発を楽しんでください！