RubyMineの新機能

2019.2(7月29日)

RubyMine 2019.2ではRails 6およびRuby 2.7のサポートを追加し、YARDのサポートとデバッガを改善し、多数のプラットフォームの改良を取り入れています。 以下の新機能をご確認いただき、今すぐ更新しましょう。 なにか問題があれば遠慮なくこちらから報告してください。RubyMine Slackへの参加も歓迎いたします。

デバッガ

デバッガ速度比較 v2019.1 v2019.2

デバッガの高速化

弊社のデバッガではTracePoint :lineを使用して1行ずつプログラムの実行を追跡していました。 バージョン2019.2では、デバッガでコードのどの部分で実行を中断するかを選択し、残りのコードをオーバーヘッドから解放できるようするMRI用のネイティブな拡張機能を考案しました。 その結果、デバッガの速度を劇的に向上させ、以下の新機能を実装することができました。

スマートステップイン

スマートステップイン

これまではデバッグセッション中に多数のメソッドを含む行に遭遇した場合、RubyMineは行内の最初のメソッドにしかステップインできませんでした。 新たに追加されたSmart Step Intoはこの制限を解除し、同一行内の各メソッドやブロック呼び出しにステップインして調査できるようにします。

ブロックのブレークポイント

ブロックのブレークポイント

新バージョンでは行だけではなく、ブロックにもブレークポイントを設定できます。 ブロックを含む行にブレークポイントを設定するために左ガターをクリックすると、RubyMineは行、ブロック、またはその両方にブレークポイントを設定するかどうかを確認します。

RubyMineでRuby&Railsスクリプトをデバッグする方法に関する詳細は、RubyMineでのデバッグをお読みください。

Ruby 2.7

パターンマッチング

RubyMine 2019.2は、Ruby 2.7の初回プレビューで実験的機能として導入されていたパターンマッチングをサポートしています。 このIDEは新しい構文を識別することができ、オブジェクト間を移動し、オブジェクトの使用箇所を検索し、名前を変更できるようにします。

Rubyのパターンマッチングに関する詳細

番号指定ブロックパラメータ

番号指定ブロックパラメータ

RubyMineの新バージョンは番号指定パラメータの構文を認識し、その使用箇所を表示/検索します。 これは、ブロック変数を定義する代わりに、パラメータ番号をデフォルトのパラメータに使用してブロックの値を割り当てられる、Ruby 2.7のもう一つの実験的機能です。

Rails 5.x

Action Mailboxのサポート

Action Mailbox

RubyMine 2019.2は、Rails 6で送り出されるAction Mailboxをサポートしています。 このIDEはroutingメソッドやコールバックの自動補完候補を表示し、それらの実装や使用箇所の間を移動できるようにします。

Action Mailbox対応のインスペクション

また、ApplicationMailboxroutingの呼び出しや、メールボックスでprocessメソッドを追加し忘れていた場合に通知を行う2つのインスペクションを追加しました。 後者はクイックフィックスも提供しています。

Action Mailboxの使用方法については、こちらの詳細なGoRailsのエピソードをご覧ください。

列挙型のサポート

ActiveRecord::Enum向けに適切なコードインサイトのサポートを追加しました。 これには列挙型の名前やメソッドに対するコード補完、ナビゲーション、使用箇所の検索が含まれます。 Rails 6で導入された列挙型の否定範囲もサポートされています。

YARD

YARDサポートの強化

YARDサポートの強化

当社はYARDのサポートを徐々に改善し、YARDタグを作成や管理を支援し、RubyMineでYARDの注釈に基づいた優れたコード補完を使えるようにしています。 新バージョンでは@overloadおよび@yieldparamタグに適切な型の注釈とインスペクションを追加しています。

RubyMineの詳細な機能概要とYARDに関する最新の改善点については、RubyMineにおけるYARDのサポートをおよびください。

Factory Bot

ファクトリ名の変更

ファクトリ名の変更

バージョン2019.2では、ファクトリ、シーケンス、特性の名前を変更(Shift+F6)できます。 このIDEはこれらの定義を検出し、その定義とそのすべての使用箇所で名前を変更するよう提案し、ファイル名がファクトリ名に一致する場合も名前を変更するよう提案します。

また、File Structureビュー(Cmd/Alt+F7)とポップアップ(Cmd/Ctrl + F12)にファクトリ、シーケンス、特性を追加し、それらを安全に削除できる機能を追加しました(Refactor | Safe Delete)。

JavaScript

デストラクチャリングインテンション

新しいインテンションアクション

新しいPropagate to destructuringインテンション(Alt-Enter)を使うと、可能な場合に追加の変数を別のデストラクチャリングに置き換えることができます。 デストラクチャリングを完全に削除するには、Replace destructuring with property or index accessというインテンションアクションを使用してください。

Refactoring Previewでの動的な使用箇所

Renameリファクタリングの改善

JavaScriptまたはTypeScriptファイル内のシンボル名を変更する際、IDEが動的な使用箇所をまとめて、デフォルトでそれらをリファクタリング対象から除外するようになりました。 これにより、リファクタリングの精度が向上し、Refactoring Previewツールウィンドウで正確に名前を変更すべきものをより細かくコントロールできるようになりました。

Vuetifyのプロパティ

Vue.jsコンポーネントライブラリのサポートを強化

Vuetify、BootstrapVue、Quasar、およびその他のVueコンポーネントライブラリのコンポーネントとそのプロパティに対するコード補完がより正確になりました。 これは、当社がIDEでこれらのライブラリを処理するために採用した新しいアプローチにより実現しました。

重複コード検査

重複コードの検索

新しいDuplicate code fragmentインスペクションはその場でコードをチェックし、エディタ内で即座に潜在的な重複箇所をハイライトします。 この機能はJavaScript、TypeScript、CSS、Sass、SCSS、Lessで動作します。

RubyMine 2019.2で使用可能なJavaScriptの改善に関する詳細は、WebStormの新機能をご覧ください。

コードスタイル

コードスタイル設定の編集

EditorConfigサポートの改善

バージョン2019.2では、複数の.editorconfigファイルを追加することで、複数プロジェクトのさまざまな部分で異なるコードスタイルを維持できます。 長年サポートされてきた標準的なEditorConfigオプションのほか、使用可能なすべてのIDEコードスタイルオプションを網羅したIDE固有のプロパティを使用できるようになりました。

シェルスクリプト

シェルスクリプト編集

シェルスクリプトの編集

新しいバージョンでは、シェルスクリプトのサポートを追加しています。 この中には、.shおよび.bashファイルに対するコード補完、クイックドキュメント、テキストベースの名前変更、およびシェルスクリプト用の実行構成が含まれています。 このIDEは、リンティング用のShellCheckとコード整形用のshfmtも統合しています。

Git

.gitignoreのコード補完

.gitignoreでのコード補完

このIDEは、.gitignoreファイルでファイル名やフォルダ名のコード補完機能を提供できるようになりました。 名前の上でCmd/Ctrl-クリックすると、Projectツールウィンドウ内の対象ファイルやフォルダにジャンプできます。 また、Project表示およびLocal Changesタブから.gitignoreに素早くファイルを追加できます。対象ファイルを右クリックしてAdd to .gitignoreを選択してください。

データベースツール

データベースツールの改善-全文検索

全文検索によるデータの発見

データの正確な位置が分からなくても、データベース内でデータを検索できるようになりました。 検索対象のデータソースを右クリックし、Full-text Search (Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F)を選択してください。 クエリ結果が絞り込まれ、データが見つかった場所の文字列だけが表示されます。

RubyMine 2019.2で使用可能なデータベースに関するその他の改善については、DataGripの新機能をご覧ください。

その他の改善:

  • 標準gemのサポート
  • Action Textのサポート
  • Cucumber 4のサポート
  • Version Controlツールウィンドウの軽微なUI改善
2019.1 (4月4日)

Docker

Docker-compose exec

Dockerとdocker-compose execの再検討

RubyMineは
docker-compose execのサポートを追加いたしました。 簡単にお伝えしますと、このコマンドを有効にすると、アプリケーションの実行やデバッグ、gemのインストール、およびその他の開発タスクを以前よりも速く行えます。

詳細は、RubyMineでのDocker/Docker Composeの使い方をお読みください。

実験的:docker composeを使って実行します。

RubyMineの高速化

Docker SDKを使って作業する際、実験的機能ruby.docker.internal.via.execを有効にするとRubyMineが高速化します。

Dockerイメージを再構築することなく、gemの追加、rakeタスクの実行、railsコマンド、およびあなたの環境を更新するものを追加できるようになりました。

最近の場所

Recent locations(最近の場所)

Recent Locationsポップアップ

新しいRecent Locationsポップアップは、コードベース内を移動する方法を一新します。 このポップアップはコードの内容を覚えてはいるものの、それを見た場所がわからない場合に実際のコードを見つけるのに役立ちます。 入力を開始して結果を絞り込み、必要なコードにジャンプできます。

詳細については、RubyMineのナビゲーション:Recent Locationsポップアップをお読みください。

プロファイラ

i18n翻訳の作成

アプリケーションのプロファイリング

RubyMine 2019.1はrbspyを統合し、ネイティブプロファイラを提供し、アプリケーションやテストを遅延させるコードの部分を発見するのに役に立ちます。

詳細なチュートリアルについては、RubyMineでのrbspyによるRuby&Railsアプリのプロファイリングをご参照ください。

プロファイラを実行中のアプリにアタッチ

実行中のアプリにアタッチ

実行中のアプリケーションにプロファイラをアタッチして(Find action / Attach Profiler to Process)、リアルタイムで調査できます!

Factory Bot

属性の自動補完とナビゲート

ファクトリを追加している際に、RubyMineはその属性と、可能であればその値も自動補完します。 例えばRailsモデルファクトリの場合、IDEはそのフィールドをそのコンテンツ、さらには関連付けで自動補完します。 そしてもちろん、それらのオブジェクトの定義と使用箇所間を移動できます。

テストファイルでのファクトリ作成の補完

メソッドの自動補完とナビゲート

テストを書く際に、createbuildbuild_stubbedなどのファクトリ作成メソッドの定義を自動補完し、それらに移動できます。

シーケンス、特性、エイリアスなど、Factory Botのその他の優れた機能も完全にサポートされています。

MVCの完全統合

また、ファクトリをRelated filesポップアップに追加し(Navigate / Related symbol)、部分的なfactory宣言がある場合にそこに移動できるガターも追加しました。

呼び出し階層

呼び出し階層

メソッド呼び出しの調査

新しいCall Hierarchyアクションは、調査中のメソッドを使用するメソッド(「呼び出し元」)、すなわちこれらの呼び出し元を呼び出すメソッドを掘り下げるのに役立ち、必要に応じてさらに深く掘り下げられます。

詳しくは、こちらのブログ記事をご参照ください。

TruffleRuby

TruffleRuby

TruffleRubyのサポート

RubyMine 2019.1ではTruffleRubyのサポートを追加しています! 現在お使いのRuby SDKをTruffleRubyに切り替えるには、当該インタプリタがインストールされていることを確認してから、それをRuby SDKの設定で選択してください。

また、今回のリリースではRubyのバージョンマネージャに関する多くの問題も修正いたしました。

JavaScript

VueでのTypeScript

VueアプリでのTypeScriptサポートの改善

RubyMineは、.vueファイル内のあらゆるTypeScriptコードに対して、TypeScript言語サービスと独自のTypeScriptサポートを併用するようになりました。 これによって、より正確な型チェックと型情報が得られるようになり、このサービスによって提供されるクイックフィックスを使用できるようになり、TypeScriptツールウィンドウの現在のファイルにあるTypeScriptエラーをすべて表示できるようになります。

テストでエラーをハイライト

テストで失敗した行の強調表示

Jest、Karma、Mocha、またはProtractor を使ってテストを実行した結果、一部のテストが失敗した場合に問題発生箇所をエディタで直接確認できるようになりました。 IDEはスタックトレースの情報を使用して、失敗したコードを強調表示します。 カーソルを合わせると、テストランナーのエラーメッセージが表示され、即座にテストのデバッグを開始できます。

新しいデバッガコンソール

新しいデバッガコンソール

JavaScriptおよびNode.jsのデバッグツールウィンドウで、新たに改善された対話型デバッガコンソールをご覧ください! コンソールはツリービューを使用してオブジェクトを表示するようになりました。また、CSSによるログメッセージのスタイル設定と、console.group()とconsole.groupEnd()を使用したメッセージのグループ化に対応しています。 また、任意の種類のログメッセージを除外することもできます。

新しいデバッガコンソール

npmスクリプトの補完

package.jsonファイルに新しいスクリプトを追加する際に、当IDEはインストールされたパッケージによって提供される利用可能なコマンドを提案するようになりました。 nodeと入力すると、IDEはフォルダとファイルの名前を提案します。 また、npm runと入力すると、現在のファイルで定義されているタスクのリストが表示されます。

RubyMine 2019.1でご利用可能なJavaScriptの改善の詳細については、WebStormの新機能をご参照ください。

HTML & CSS

HTMLとCSS

ドキュメントの更新

CSSプロパティ、HTMLタグと属性のドキュメント(F1)に、MDNのブラウザ対応状況に関する最新の説明と情報、ならびにMDNの記事全文へのリンクが表示されるようになりました。

カスタムテーマ

カスタムテーマ

新しいUIテーマ

プラグイン形式で入手可能なRubyMineの新しいカラフルなUIテーマをご利用いただけるようになりました。 ダークパープルグレーシアンライトのテーマから選択するか、独自のものを作成してください。

データベースツール

データベースツールの改善-新しいソース

当社DataGripチームの同僚たちの尽力により、RubyMineのデータベースツールに対して以下の素晴らしい改善が実施されました:

  • 新しいデータベースのサポート:Greenplum、Vertica、Apache Hive。
  • コード補完は、CREATEとDROPを組み合わせた文をサポートします。
  • MySQLとMariaDBでDEFINER属性をサポートします。
  • MariaDBでOracleモードをサポートします。
  • プロジェクト用にデフォルトフォルダを設定できるようになりました。

その他の改善:

  • Springによるテストの実行・デバッグ機能
  • ポリモーフィック関連:sourceとsource_typeパラメータのサポート
  • bundle.configを使用した代替gemfileの指定
  • bundle.configを使用したローカルgemのパス指定
  • デフォルトオプションの国際化(I18n)サポート
  • Railsモデルのクエリフィールドメソッドのサポートを改善
2018.3 (11月22日)

コードインサイト

Railsスコープのサポート

Railsスコープ

当IDEはRailsスコープをよりよく理解するようになりました。 例えば、スコープに関連オブジェクトを追加すると、RubyMineは使用可能なファインダーメソッドをご提案いたします。 また、連鎖スコープにも、コード自動補完とナビゲーションが動作いたします。

構造体サポート

構造体

RubyMineで、構造体がフルサポートされるようになりました。 他のRubyクラスやそのインスタンスで行うのと同様に、構造体クラスのオブジェクトを自動補完、ナビゲート、リファクタリングできるようになりました。

RubyでのNull可能性分析

RubyでのNull可能性分析

新しいNil参照外しインスペクション は、nilになる可能性のある変数でメソッドを呼び出す場合など、現在のコンテキストで起こり得るnilエラーを検証します。

国際化

I18n翻訳の作成

新しいI18nダイアログでは全ての辞書の翻訳を一度にまとめて作成できます。 以前同様、文字列にキャレットを置きAlt+Enterを押し、i18n化を選択します。 その後キーが作成され次第、Cmd/Ctrlを押しながら作成されたキーをクリックすると、既存の任意の翻訳へナビゲートできます。

スコープと遅延キー

新しいバージョンのRubyMineでは、名前空間キーと遅延参照キーをエディタから直接作成できるため、これらの翻訳についても簡単に作成できます。

翻訳プレビュー

RubyMineでは、I18nキーの代わりに、実際の翻訳を表示できます。コントローラまたはビューファイルの任意のキー上でCmd./Ctrl.を押すだけです。 翻訳プレビューで、どの辞書を用いるかも選択できます。

v2018.3で行われたその他の国際化の改善については、RubyMineのi18n機能をご参照ください。

リファクタリング

新しいパラメータの抽出ダイアログ

パラメータの抽出

新しいパラメータの抽出ダイアログ(リファクタ | これをリファクタ | パラメータの抽出)によって、引数を抽出するだけでなく、それ用にデフォルト値を設定したり、オプション化したり、ブロックとして渡したりするようにできます。

インラインでのリファクタリングの改善

インラインでのリファクタリングの改善

インラインでのリファクタリングを改善し、不要なメソッドや変数をより安全に取り除けるようになりました。 特に、文字列補間がある引数や変数を有するメソッドのインライン化が、より堅牢になりました。

変数と定数への部分文字列の抽出

変数と定数への部分文字列の抽出

ついに、変数または定数にへの部分文字列の抽出する、とても使いやすい機能を追加いたしました。

リファクタリングオプションの詳細は、RubyMineのリファクタリング:概要&新機能をご覧ください。

新しいインテンションアクション

インテンションアクション

新しいインテンションアクションは、コードをさらに読みやすくするのにお役に立ちます。 例えば、ド・モルガンの法則インテンションを使って、入り組んだ否定条件を簡略化し、メソッドへのブロック呼び出しを抽出できるようになりました。 単に、コードの臭いにキャレットを置き、Alt+Enterを押すだけで適切なクイックフィックスを適用できます。

新しいその他インテンションについては、RubyMineのインテンションアクションをお読みください。

テスト

テストのガター

テストのガター

RubyMine 2018.3では、テストのメソッドごとに便利なガターも表示されます。 これらのガターは視覚的なアンカーで、ファイル内で実行可能な特定のテストを示します。 また、これらはコンテキストメニューが行うよりも迅速にテストを実行する方法を提供いたします。

RubyMineでのテストの実行を読んで、その他の便利なテスト機能について知ってください。

Git

GitHubのプルリクエスト

プルリクエストの閲覧

RubyMine内で、GitHubのプルリクエストを閲覧できるようになりました。 VCS | Git | プルリクエストの表示で、プルリクエストの説明、ラベル、担当者、および実際の変更内容を表示できます。

さらに、プロジェクトの更新や、変更のコミット、差分の表示、競合の解決といった、Git統合で使い慣れた機能がすべて、Gitサブモジュールで動作するようになりました。

ユーザーインターフェース

新しいDarculaのカラースキーム

Darculaの更新

新しいDarculaテーマは、派手な色を排除し、目に優しいものになりました。また、JetBrains IDEの他のプログラミング言語用に設計された同様のスキームとの整合性も向上しております。

以前のDarculaもまだご利用いただけます。 このテーマを引き続きお使いになりたい場合は、環境設定/設定 | エディタ | カラースキーム | Rubyに移動し、歯車のアイコンをクリックし、現在のスキームをDarcula 2018.2に変換をご選択ください。

新しいどこでも検索ダイアログ

Search Everywhere(どこでも検索)

新しいどこでも検索ダイアログ (Shift+Shift)がより便利になりました。 これにより、クラスに移動や、ファイルシンボルアクションなど、他のナビゲーションダイアログすべてをより簡単に使用できるようになります。 Tabを押すだけで、検索タイプを変更できます。

新しいプラグインUI

プラグインUI

更新されたプラグインセクション(環境設定 / 設定 | プラグイン)で、プラグインの管理、インストール、アンインストール、および更新が簡単になりました。 例えば、タグでプラグインを検索したり、ダウンロード数、名前、評価、注目度、アップデートで結果をソートしたりできるようになりました。

JavaScript

Angularテンプレートでのコード補完

フレームワーク

Angularで作業する際には、改善されたコードの自動補完、および変数、パイプ、非同期パイプ、テンプレート参照変数のナビゲーションをお楽しみください。

Reactアプリでは、コード補完がすべてのコンポーネントライフサイクルメソッドをサジェストするようになりました。 未解決の変数インスペクションは、未定義の可能性があるコンポーネントについて警告いたします。

JavaScriptの自動インポート

JavaScriptの自動インポート

JavaScriptファイルで当IDEは、プロジェクト内で定義されたシンボルだけでなく、プロジェクトの依存関係からのシンボルにも自動的にインポートを追加できるようになりました。 これは、ライブラリに、ESモジュールとして記述されたソースか、TypeScriptの型定義ファイルが含まれている場合に機能いたします。

CSSルールセットの抽出

HTMLとスタイルシート

新しいルールセットの抽出アクション(Alt-Enter)は、あるルールセットから、新しい、より特定のものへとCSS宣言を素早く抽出できます。

CSSのコードスタイルとプリプロセッサに、空白行の取り扱いに関する設定が加わりました。 さらに、ブロック内のCSSプロパティを、アルファベット順またはカスタム順にソートできるようになりました。

WebStormの新機能をご覧になり、RubyMine 2018.3でご利用いただけるJavaScriptに関する改善内容の詳細をご確認ください。

マークダウン

マークダウンの改善

参照リンクの抽出など

新しい参照の導入アクションは、インラインリンクへの参照作成にお役に立ちます。 当IDEは、ファイル内の重複するリンクを全て洗い出し、新しく作成した参照で置き換えるようご提案いたします。

さらに、テキストを打ち消し線で消したり、ヘッダサイズを切り替えたりできるようになりました。 これらの新しいアクションはツールバーにございます。

その他の改善:

  • 条件付きステートメントでのキーワードハイライトの改善
  • YAMLの値をフラット化したキーで検索
  • パスをブレッドクラムからYAML値へコピー
  • attr_accessorsサポートの改善
  • JavaScriptファイルのパラメータヒント
  • ハイコントラストカラースキーム
  • i18nでの安全な削除
  • アクティビティモニタ