RubyMine 2019.2ではRails 6およびRuby 2.7のサポートを追加し、YARDのサポートとデバッガを改善し、多数のプラットフォームの改良を取り入れています。
当社のデバッガではTracePoint :line
を使用して1行ずつプログラムの実行を追跡していました。 バージョン2019.2では、デバッガでコードのどの部分で実行を中断するかを選択し、残りのコードをオーバーヘッドから解放できるようするMRI用のネイティブな拡張機能を考案しました。 その結果、デバッガの速度を劇的に向上させ、以下の新機能を実装することができました。
これまではデバッグセッション中に多数のメソッドを含む行に遭遇した場合、RubyMineは行内の最初のメソッドにしかステップインできませんでした。 新たに追加されたSmart Step Intoはこの制限を解除し、同一行内の各メソッドやブロック呼び出しに対して(対象を矢印キーで選択し)ステップインして調査できるようになりました。
新バージョンでは行だけではなく、ブロックにもブレークポイントを設定できます。 ブロックを含む行にブレークポイントを設定するために左ガターをクリックすると、RubyMineは行、ブロック、またはその両方にブレークポイントを設定するかどうかを尋ねます。
RubyMineでRuby&Railsスクリプトをデバッグする方法に関する詳細は、RubyMineでのデバッグをお読みください。
RubyMine 2019.2は、Ruby 2.7の初回プレビューで実験的機能として導入されていたパターンマッチングをサポートしています。 このIDEは新しい構文を識別することができ、オブジェクト間を移動し、オブジェクトの使用箇所を検索し、名前を変更できるようにします。
RubyMineの新バージョンは番号指定パラメータの構文を認識し、その使用箇所を表示/検索します。 これは、ブロック変数を定義する代わりに、パラメータ番号をデフォルトのパラメータに使用してブロックの値を割り当てられる、Ruby 2.7のもう一つの実験的機能です。
RubyMine 2019.2は、Rails 6で送り出されるAction Mailboxをサポートしています。 このIDEはroutingメソッドやコールバックの自動補完候補を表示し、それらの実装や使用箇所の間を移動できるようにします。
また、ApplicationMailbox
でrouting
の呼び出しや、メールボックスでprocess
メソッドを追加し忘れていた場合に通知を行う2つのインスペクションを追加しました。 後者はクイックフィックスも提供しています。
Action Mailboxの使用方法については、こちらの詳細なGoRailsのエピソードをご覧ください。
ActiveRecord::Enum
向けに適切なコードインサイトのサポートを追加しました。 これには列挙型の名前やメソッドに対するコード補完、ナビゲーション、使用箇所の検索が含まれます。 Rails 6で導入された列挙型の否定範囲(Negative scopes for enums)もサポートされています。
当社はYARDのサポートを徐々に改善し、YARDタグを作成や管理を支援し、RubyMineでYARDの注釈に基づいた優れたコード補完を使えるようにしています。 新バージョンでは@overload
および@yieldparam
タグに適切な型の注釈とインスペクションを追加しています。
RubyMineの詳細な機能概要とYARDに関する最新の改善点については、RubyMineにおけるYARDのサポートをお読みください。
バージョン2019.2では、factory、sequence、traitの名前をrename(Shift+F6)でリファクタリングできます。 このIDEはこれらの定義を検出し、その定義とそのすべての使用箇所で名前を変更するよう提案し、ファイル名がfactory名に一致する場合も名前を変更するよう提案します。
また、File Structureビュー(Alt+F7)とポップアップ(Ctrl + F12)にfactory、sequence、traitを追加し、それらを安全に削除できる機能を追加しました(Refactor | Safe Delete)。
新しいPropagate to destructuringインテンション(Alt-Enter)を使うと、可能な場合に追加の変数を別のデストラクチャリングに置き換えることができます。 デストラクチャリングを完全に削除するには、Replace destructuring with property or index accessというインテンションアクションを使用してください。
JavaScriptまたはTypeScriptファイル内のシンボル名を変更する際、IDEが動的な使用箇所をグループにまとめ、デフォルトでそれらをリファクタリング対象から除外するようになりました。 これにより、リファクタリングの精度が向上し、Refactoring Previewツールウィンドウで正確に名前を変更すべきものをより細かくコントロールできるようになりました。
Vuetify、BootstrapVue、Quasar、およびその他のVueコンポーネントライブラリのコンポーネントとそのプロパティに対するコード補完がより正確になりました。 これは、当社がIDEでこれらのライブラリを処理するために採用した新しいアプローチにより実現しました。
新しいDuplicate code fragmentインスペクションはその場でコードをチェックし、エディタ内で即座に潜在的な重複箇所をハイライトします。 この機能はJavaScript、TypeScript、CSS、Sass、SCSS、Lessで動作します。
RubyMine 2019.2で使用可能なJavaScriptの改善に関する詳細は、WebStormの新機能をご覧ください。
バージョン2019.2では、複数の.editorconfig
ファイルを追加することで、複数プロジェクトのさまざまな部分で異なるコードスタイルを維持できます。 長年サポートされてきた標準的なEditorConfigオプションのほか、使用可能なすべてのIDEコードスタイルオプションを網羅したIDE固有のプロパティを使用できるようになりました。
新しいバージョンでは、シェルスクリプトのサポートを追加しています。 この中には、.sh
および.bash
ファイルに対するコード補完、クイックドキュメント、テキストベースの名前変更、およびシェルスクリプト用の実行構成が含まれています。 このIDEは、リンティング用のShellCheckとコード整形用のshfmtも統合しています。
このIDEは、.gitignore
ファイルでファイル名やフォルダ名のコード補完機能を提供できるようになりました。 名前の上でCtrl-クリックすると、Projectツールウィンドウ内の対象ファイルやフォルダにジャンプできます。 また、Project表示およびLocal Changesタブから.gitignore
に素早くファイルを追加できます。対象ファイルを右クリックしてAdd to .gitignoreを選択してください。
データの正確な位置が分からなくても、データベース内でデータを検索できるようになりました。 検索したいデータソースを右クリックして、Full-text Search(Ctrl+Alt+Shift+F)を選択してください。 クエリ結果が絞り込まれ、データが見つかった場所の文字列だけが表示されます。
RubyMine 2019.2で使用可能なデータベースに関するその他の改善については、DataGripの新機能をご覧ください。