RubyMine 2020.2 の新機能

新しいコード上の問題の確認方法、27 種類の新しいインテンションアクション、Liquid のサポート、GitHub プルリクエストの完全サポート、その他多くの Ruby / Rails / JS 向け新機能とデータベースツールを提供します。

コードインサイト

新しいコードレビューと問題修正の手段

新しいコード上の問題の確認と修正の方法

現在ファイルの問題箇所の数を伝える新しいウィジェットを追加しました。 それをクリックすると、問題箇所のリストを含むツールウィンドウが表示されます。 そこから問題箇所を含むコードにジャンプしたり、ツールウィンドウから問題を直接修正したりできます。

詳細情報

Liquid テンプレート言語

Liquid テンプレート言語の基本的なサポート

Liquid テンプレート言語の基本的なサポート

RubyMine 2020.2 では、Liquid テンプレート言語の基本的なサポートを提供しています。 IDE は構文エラーの有無を表示し、よく使用する構文を挿入するライブテンプレートを提供し、Code Style 設定で指定した要件に従ってコードを整形します。

Liquid サポートに関する詳細

新しいスマートなインテンションアクション

コーディングにかかる時間を節約しましょう!

RubyMine 2020.2 では、Alt+Enter で呼び出してコードをすばやく最適化できる多数の新しいインテンションアクションを提供しています。

三項演算子と if-else 演算子の反転

三項演算子と if-else 演算子の反転

Invert ‘if-else’ アクションを使用すると、if-else 演算子を反転して条件を否定し、分岐を切り替えることができます。 三項演算子についても、同様の動作を行う Flip ‘?:’ インテンションアクションがあります。

ネストした ‘if’ ステートメントとブール式の切り替え

ネストした ‘if’ ステートメントとブール式の切り替え

Merge nested ‘if’ アクションを使用すると、ネストしたステートメントをブール式にマージできます。 このアクションを呼び出すには、キャレットを式を囲む if にキャレットを置いてください。

Split into multiple ‘ifs’ はこれと反対の動作を行い、ブール演算子にキャレットを置くと使用できます。

詳細情報

‘else/if’ および ‘elsif’ ステートメントの切り替え

‘else/if’ および ‘elsif’ ステートメントの切り替え

Merge ‘else if’ および Split ‘elsif’ インテンションアクションを使用すると、elsif ステートメントをネストした else/if 分岐に分割できます(逆も同様)。

連続する ‘if’ のマージ/分割

連続する ‘if’ のマージ/分割

Merge/split sequential ‘if’s アクションは elsif または if キーワードで使用できるものです。 このアクションは、全く同じコードを持つ 2 つの分岐をマージすることを提案します。 その後、RubyMine は || 演算子で 2 つの条件を結合し、必要に応じて丸括弧を追加します。 Split into multiple ‘if’s アクションは逆の動作を実行します。

名前空間の展開またはフラット化

名前空間の展開またはフラット化

Expand namespace および Flatten namespace アクションは、:: スコープ解決演算子を含む行をネストしたモジュールに展開したり、その逆の動作を行ったりします。 Flatten namespace アクションはその上にあるモジュールをフラット化することに注意してください。

ハッシュをキー順に並べ替え

ハッシュをキー順に並べ替え

このインテンションアクションを使用すると、ハッシュをキーのアルファベット順に並べ替えることができます。 また、型の異なる複数のキーを持つハッシュにも機能します。 この場合、キーは型でグループ化されて並べ替えられます。

詳細情報

明確化する丸括弧の追加/除去

明確化する丸括弧の追加/除去

Add clarifying parentheses(明確化する丸括弧の追加)インテンションアクションは二項式と三項式に機能します。 このアクションは式の評価方法を明確化するため、演算子の優先順位に依存する複雑な式に丸括弧を追加します。 Remove unnecessary parentheses(不要な丸括弧の除去)も呼び出すことができます。

詳細情報

数値でアンダースコアを追加/除去

数字に対するアンダースコアの追加/除去

Add underscores(アンダースコアの追加)アクションは大きな数字にアンダースコアを追加し、可読性を向上させます。 サポート対象の型は 整数/浮動小数/8 進数(3 桁ごとにアンダースコアを追加)と 16 進数/2 進数(4 文字/4 桁ごとにアンダースコアを追加)です。

Remove underscores(アンダースコアの除去)アクションは、アンダースコアを含む数字に対して呼び出すことができます。

新しいローカル変数の導入

新しいローカル変数の導入

このインテンションアクションを使用すると、キャレットが式の上にあるときに新しいローカル変数を導入できます。

ローカル変数のインライン化

ローカル変数のインライン化

このインテンションアクションは、リファクタリング中に 1 回しか使用されていない変数がある場合に役に立ちます。

ブロックコメントと行コメントの切り替え

ブロックコメントと行コメントの切り替え

ブロックコメントを行コメントに変換できるようになりました(逆変換にも対応)。 これらのアクションはブロックコメントの要件に従い、行頭から始まるコメントに対してのみ使用できます。

コードエディタ

折りたたんだ if/while/for ステートメントの可読性を向上

折りたたんだ if/while/for ステートメントの可読性を向上

折りたたまれた if / while / for のような構文に対し、RubyMine が先頭行で使用されている条件または変数を表示するようになりました。 これにより、構文を展開して中身を調査する必要があるかどうかを判断しやすくなりました。

エディター内に RDoc/YARD ドキュメントコメントを表示

エディター内で RDoc や YARD のドキュメントを読む場合、特に参照リンクや画像が含まれている場合はタグの山をかき分けて目を通さなければならないので非常に面倒です。 このため、ドキュメントをエディター内に直接表示する手段を追加しました。

この機能は、Preferences/Settings | Editor | General | Appearance | Render documentation comments で有効にできます。

Heredoc インジェクション

Heredoc インジェクション

RubyMine がヒアドキュメントのインジェクションに対応し、元の書式とインデントを維持しながら複数行の文字列を定義できるようになりました。 HTML や SQL などのコードスニペットの埋め込みに活用してください。

詳細情報

メソッド間の改善されたナビゲーション

メソッド間の改善されたナビゲーション

インテンションアクションを呼び出す、あるいはガター内のアイコンをクリックすることで、スーパーメソッドとオーバーライドメソッドの間を移動できるようになりました。

Ruby

開始値省略範囲式のサポート

開始値省略範囲式のサポート

これまでと同様、RubyMine は最新バージョンの Ruby をサポートしています。 例えば、RubyMine バージョン 2020.2 は Ruby 2.7 で導入された開始値省略範囲式をサポートしています。

標準ライブラリのメソッド補完を改善

標準ライブラリのメソッド補完を改善

RubyMine が Array#sort_byHash#each その他多くの標準ライブラリのさまざまなメソッドに対し、より正確な補完候補を表示するようになりました。

名前付きパラメーターの番号指定パラメーターへの変換(および逆変換)

名前付きパラメーターの番号指定パラメーターへの変換(および逆変換)

名前付きパラメーターを Ruby 2.7 で導入された番号指定パラメーターに簡単に変換できるようになりました。 キャレットをいずれかの名前付きパラメーターの上に置き、Alt+Enter を押して Convert named parameters to numbered インテンションアクションを実行するだけです。 Convert numbered parameters to named アクションは逆の動作を実行します。

詳細情報

attr_accessor/reader/writer をインスタンス変数に追加

attr_accessor/reader/writer をインスタンス変数に追加

この新しいインテンションアクションを使用すると、属性の accessor / reader / writer をインスタンス変数に簡単に追加できます。 このアクションを実行するには、変数にキャレットを置き、Alt+Enter を押してください。

Rails

lazy キーの展開

lazy キーの展開

lazy キー(lazy lookups)を使用する Rails アプリケーションでは、このインテンションアクションが自動的にキーを完全な形式に展開します。 コントローラーに lazy キーがある場合、このインテンションはどの lazy キーに展開するかを確認する場合があります(複数の選択肢がある場合があるため)。

Git

GitHub プルリクエストの完全サポート

もうブラウザーと IDE を切り替える必要はありません。 プルリクエストのワークフロー全体を RubyMine 内部で完結できるようになりました!

バージョン 2020.2 は、プルリクエストの閲覧 / 割り当て / 管理 / マージ、タイムラインとインラインコメントの表示、コメントとレビューの送信、変更の承認に対応しています。

GitHub プルリクエストの完全サポートに関する詳細

Git 操作ダイアログの改善

Merge / Pull / Rebase の Git ダイアログの外観が統一され、視認性が向上しました。 新しいデザインでは、実行予定の Git コマンドをすばやく確認できます。

また、Pull ダイアログに –rebase オプションを、Merge ダイアログに –no-verify オプションを追加しています。

JavaScript と TypeScript

JavaScript 用の新しスマートなインテンション

JavaScript 用の新しスマートなインテンション

新しいスマートなインテンション(Alt+Enter)は、一部のアクションをより高速に実行するのに役立ちます。 例えば、数字インデックスを使った for ループを forEach 配列メソッドにすばやく変換できます。 また、エディター内に JavaScript および TypeScript ファイル内のドキュメントコメントが直接表示されるようになったため、これらのコメントを参照するのが楽になり、集中力の低下を最小限に抑えられるようになりました。

Prettier を JavaScript プロジェクトのデフォルトフォーマッターに指定

Prettier を JavaScript プロジェクトのデフォルトフォーマッターに指定

組み込みのフォーマッターの代わりに Prettier を使用してコードを整形したいですか? このアップデートでは、以前よりもはるかに簡単にそれを実現できるようになりました。 新しい On code reformat チェックボックスをオンにするだけで、IDE が .js / .ts / .jsx / .tsx ファイルの整形に Prettier を使用するようになります。 その他のファイルタイプも簡単に追加できます。

詳細情報

最高水準の Vue サポート

最高水準の Vue サポート

私たちは過去 1 年間で Nuxt.js のサポートと Vue 固有のコードスタイル設定を追加し、TypeScript プロジェクトでの Vue 関連の改善やその他多数の機能改善を行いました。 RubyMine の Vue サポートがかつてないほど高度になりました!

詳細情報

データベースツール

セルの値を独立したエディターで操作

セルの値を独立したエディターで操作

セル内に巨大な値がある場合に、それを独立したパネルで表示または編集できるようになりました。 また、右側のツールバーを使用してソフトラップモードを切り替えられるようになりました。

ブール値用の新しい UI

ブール値用の新しい UI

ブール値をより便利に表示および編集できる手段が追加されました。 true 値が箇条書きでマークされ、他のすべての値と区別できるようになりました。

編集:

  • スペースキーを押すと、以前と同じように値が切り替わります。
  • ftdngc のいずれかを入力すると、対応する値(falsetruedefaultnullgeneratedcomputed)が入力されます。
  • 上記以外の文字を入力すると、すべての候補値を含むドロップダウンリストが開きます。

その他の変更

  • バージョン 2020.1 で導入された 機械学習を使ったコード補完は、コード補完候補の適合性を改善するのに効果があることが判明しました。 バージョン 2020.2 ではこの機能をデフォルトで有効にすることにしました。
  • Search Everywhere の検索結果表示を刷新し、検索クエリとの適合度順に項目を並べ替えられるようにしました。
  • RubyMine 2020.2 は、Linux または Windows ファイルシステム内にあるプロジェクトを処理するために WSL2 にインストールされた Git をサポートしています。
  • 複数スイートのコードカバレッジレポートを生成し、それを HTML にエクスポートできるようになりました。
  • Google BigQuery(SQL 言語)の基本的なサポート。 RubyMine は Google BigQuery を使用している場合にクエリを正確にハイライトし、コーディング支援機能の提供を開始しました。
  • コード補完で、親クラスまたは親モジュールの他のメソッドをオーバーライドするメソッドの完全な型名が表示されるようになりました。 これにより、提案されたメソッドの出処が分かりやすくなります。
  • Ruby 2.7 で Run Anything から IRB コンソールを起動できるようになりました。
  • Gemfile の補完で最新ローカルバージョンの gem のみが表示されるようになりました。
  • Array.to_h()Dir.each() およびその他のスタブメソッドに不正な数のパラメーターを渡そうとしたときに RubyMine が警告を表示するようになりました。
  • あらゆるラムダ式の形式について番号指定パラメーターで “ordinary parameter is defined” の警告を表示するようにしました。
  • アクティブレコードのリレーションチェーンの not 呼び出しに対する型のサポートを追加しました。 where メソッドに引数が指定されていない場合、RubyMine は not を補完候補として提供します。
  • アクセシビリティを改善しました。ユーザーがスクリーンリーダーを有効にしている場合、RubyMine は自動的にアクセシビリティ機能を有効化します。