RubyMine 2021.3 の新機能

RBS 型シグネチャバンドル、型チェックと RBS ファイル対応の新しいインスペクション、リモート開発ワークフローのサポート、UX の改善など。

Ruby と RBS

RBS 型シグネチャのバンドル

このバージョンにはRBS シグネチャがバンドルされています。 RBS シグネチャが存在する場合、RubyMine はリアルタイム型チェック、より精度の高いナビゲーション、検索、およびリファクタリングなど、改善されたコーディング支援を提供できます。

RBS ファイル対応の新しいインスペクション

このリリースでは、RBS ファイル対応の新しいインスペクションを 12 個追加しました。 RubyMine はスタイルの問題、未使用のエンティティ、継承の問題、部分宣言の不一致などについて RBS コードをチェックします。

RubyMine 組み込みのスペルチェッカーが RBS ファイルでも機能するようになりました。

RBS ベースのパラメーター情報

Parameter Info ポップアップ(Ctrl+P)には、メソッドパラメーターの名前と型が表示されます。 このリリースでは、対応する RBS シグネチャ(存在する場合)の型情報を使用できるようになりました。

RBS ファイルのコピーライト

プロジェクトには、著作権で保護したい RBS ファイルが含まれている場合があります。 ファイルごとに個別にコピーライト表示を追加する代わりに、RBS ファイルの先頭に自動的にコピーライト情報が追加されるようになりました。

保存時に RuboCop を実行

ファイルが変更され、変更の自動保存や手動保存が行なわれるたびに RuboCop によるファイル整形を実行するように構成できるようになりました。 この機能を有効にするには、Preferences(環境設定)/ Settings(設定) で rubocop を検索し、Run ‘rubocop -a’ on save(保存時に ‘rubocop -a’ を実行)チェックボックスをオンにします。

型チェック

RBS ベースの型チェックを行うインスペクションを追加

代入値と RBS から取得した必要な型との矛盾を検出する、多数の新しいインスペクションを追加しました。

これらのインスペクションは、定数、インスタンスとクラスの変数、メソッドとブロックのパラメーター、戻り値、呼び出しを行うために渡される引数、およびグローバル変数の型をチェックします。 これらは、Preferences(環境設定)/ Settings(設定)| Editor(エディター)| Inspections(インスペクション)| Ruby にあります。

Sorbet の初期サポート

RubyMine が .rbi ファイルのものを含む Sorbet 型シグネチャを認識できるようになりました。 メソッド引数と戻り値の型不一致のインスペクションは、Sorbet に基づいて機能するようになっています。

コンテキストメニューの Go To(移動)| Type Signature(型シグネチャ)/ Associated Declaration(関連する宣言) アクションを使って、対応する Ruby と RBI ファイル間を移動できます。 ショートカット Ctrl+Alt+Home も使用できます。

リモート開発

リモート開発ワークフローのサポート

RubyMine が早期バージョンのリモート開発ワークフローをサポートするようになりました。 世界中のあらゆる場所から RubyMine をバックエンドで実行しているリモートマシンに接続できます。 すべての処理は高性能なリモートマシン上で行われ、ローカルマシンで作業しているかのように円滑にプロジェクトに取り組むことができます。

ユーザーエクスペリエンス

パフォーマンスの改善

このリリースでは、コードエディターのパフォーマンス改善に努めてきました。 ファイルを開く、入力、コード補完の呼び出し、クイックフィックスの適用といったアクションが高速化されました。

この変化は平均的なサイズのプロジェクトファイルで作業する場合にはあまり気づきませんが、サイズの大きなファイル(2,000 行以上のコード)で作業する際にはより顕著になります。

Bookmarks(ブックマーク)ツールウィンドウ

このバージョンでは、ブックマークの機能を手直ししました。 カスタム名でブックマークを作成し、ノードにグループ化できます。 すべてのブックマークは、新しい Bookmarks(ブックマーク)ツールウィンドウに配置されるようになりました。

Run(実行)ツールウィンドウの分割

Run(実行)ツールウィンドウを横方向または縦方向に分割できるようになりました。 これは、複数の構成が実行中であり、その結果を同時に確認する場合に役立ちます。

必要なタブをハイライトされた領域にドラッグアンドドロップするだけです。 タブを元の場所にドラッグすると、ツールウィンドウの分割が解除されます。上部ペインを右クリックして、コンテキストメニューから Unsplit を選択することも可能です。

Show Usages(使用箇所の表示)のソースプレビュー

四角形のアイコンをクリックすることで、Show Usages(使用箇所の表示)ウィンドウ(Ctrl+Alt+F7)でソースコードのプレビューをオンにできるようになりました。

VCS

リモートブランチ対応の Checkout and Rebase onto Current(チェックアウトして現在のブランチでリベース)

Checkout and Rebase onto Current(チェックアウトして現在のブランチでリベース)アクションを使うと、選択したブランチをチェックアウトし、現在チェックアウトされているブランチでリベースすることができます。 これまでは、ローカルブランチに対してのみこの操作を行えました。 このバージョンからは、このアクションをリモートブランチにも適用できる機能を追加しました。

新しい Changes ツールウィンドウ

このバージョン以降の RubyMine は、コミットデータとコミット間の差分をエディターの左側にある個別の Changes(変更)ツールウィンドウに表示します。

新しいツールウィンドウを開くには、バージョン管理システムの Log(ログ)タブに移動し、リビジョンを右クリックしてコンテキストメニューから Compare with local(ローカルと比較)を選択してください。

新しい Push All up to Here(ここまでのすべてをプッシュ)アクション

選択したコミットまでのすべてのコミットをプッシュできる新しいアクションを追加しました。 これは、送信可能な複数のコミットと作業中の他のコミットが混在している場合に便利です。

Web とフレームワーク

HTML コード補完の改善

HTML ファイルでコード補完が機能する仕組みを改善しました。 以前は、< 文字を入力した場合にのみ HTML ファイルの補完候補が表示されていました。 このバージョンからは、HTML ファイルでタグ名または略語を入力した場合も補完候補が表示されるようになりました。

エディターからの npm パッケージのアップデート

エディターから npm パッケージを最新バージョンに直接アップデートできるようになりました。 package.json ファイルを開き、アップデートするパッケージバージョンにキャレットを置いて Alt+Enter を押すと、Update ‘package name’ to the latest version(‘パッケージ名’ を最新バージョンにアップデート)を選択できます。

HTTP クライアントの強化

バイナリレスポンス、gRPC リクエスト、カスタムファイルまたはディレクトリへの出力のリダイレクト、テキストと JSON ストリームのサポート、および HTTP リクエスト識別子のサポートを追加しました。

Space

IDE からのマージリクエストとコードレビュー

Space 内のプロジェクトに対し、IDE からマージリクエストとコードレビューを作成できるようになりました。 これらのアクションを呼び出すには、Code Reviews(コードレビュー)ツールウィンドウの上部にあるツールバーの + アイコンをクリックします。

ファイルを表示済みとしてマーク

コードレビューでは、レビューされていないファイルが青色のドットでマークされます。 これは、コードレビューを実施する際に Space プロジェクト内の変更を見逃さないようにするのに役立ちます。

マークされた項目を開くと、ドットが自動的に消えます。 後で変更をレビューする場合は、コンテキストメニューから Mark as Not Viewed(未表示としてマーク)を選択できます。

データベースツール

バージョン管理システム内のデータベース

実際のデータソースから DDL データソースを生成し、その DDL データソースを使用して実際のデータソースにマッピングし、それらを比較して双方向に同期できるようになりました。

集計

範囲選択したセルを集計する Aggregate(集計)ビューを表示する機能を追加しました。 ビューで表示するセル範囲を選択し、右クリックして Show Aggregate View(集計ビューの表示)を選択してください。

新しい Database Diff ウィンドウ

新しい Database Diff(データベース差分)ウィンドウを使用して、2 つのスキーマやオブジェクトを比較できるようになりました。比較する項目を選択して、Ctrl+D を押してください。

先頭の見出し行を自動検出

このバージョン以降の RubyMine では、CSV ファイルを開くかインポートした際に、列の名前を含む見出しとなっている先頭行が自動的に検出されます。

その他の改善

  • スクリーンリーダーを使用してプロジェクトを作成できるようになりました(IDEA-185260)。
  • マウスホバー時に表示されていたツールウィンドウウィジェットのポップアップ(IDEA-278151)とクイックドキュメントのポップアップ(IDEA-274143)を無効にしました。
  • Go To Declaration or Usages(宣言または使用箇所に移動)ポップアップの呼び出しに関する問題を修正しました(IDEA-272536)。
  • VoiceOver のフォーカスに関するいくつかの問題を解決しました(IDEA-273021)。
  • 型チェック、引数の不一致インスペクション、およびパラメーター情報アクションがオーバーライドされたメソッド内の super 呼び出しで機能するようになりました。
  • 他のパラメーターの中間にある RBS 残余パラメーター(可変長パラメーター)のサポートを追加しました。
  • 新しいガターアイコンを使用して、RBS ファイル内のオーバーロードされたメソッド間を移動できるようになりました。
  • 新しい RBS ファイルを作成する際に、ファイル名に :: 文字を使用して、周辺モジュールを含むファイルを作成できるようになりました。
  • Search(検索)| Symbols(シンボル)「クラス#メソッド」のフォーマットを使ってメソッドを検索できるようになりました。
  • RubyMine が新たにシングルトンインスタンスの変数と属性をサポートし、それらに対して型チェックとヒント機能を提供できるようになりました。
  • VCS 設定の構造をより明確にしました。
  • .js ファイルと .d.ts ファイルのマッピングに関する多数の問題を修正し、これらの間を移動するのに使用できるガターアイコンを追加しました。
  • npm、ESLint、Mocha、および Jest の Node.js リモートインタープリターサポートを追加しました。
  • JavaScript ファイルのインデックス作成時間を 20% 短縮しました。
  • リモート ES6 モジュールをエディターからダウンロードできるようになりました。インポートパスにキャレットを置き、Alt+Enter を押して Download module(モジュールのダウンロード)を選択するだけです。
  • 組み込みターミナルで Windows の新しい ConPTY API がサポートされるようになりました。 これをターミナルのバックエンドとして使用すると、winpty をベースとした以前の実装で発生していた複数の問題が解決されます。 また、ターミナルで 24 ビットカラーがサポートされるようになりました。
  • このバージョンでは、組み込みターミナルでの先行入力を新たにサポートしています。 ターミナルがテキストの変更を予測し、予測した内容を若干異なるフォントで即座に表示します。 IDE はレイテンシが存在していてもローカルマシンと同じ速さで文字を表示できるため、これはリモートマシンで作業する際に役立ちます。