RubyMineの新機能

2019.3 (11月28日)

RubyMine 2019.3ではコードインサイトの強化、デバッガの改善、Git、JavaScript、HTTPクライアント向けの多くのプラットフォームの改善が組み込まれています。 以下の新機能をご確認いただき、今すぐ更新しましょう。 何らかのバグ・問題を発見した場合、弊社の課題トラッカーに投稿いただくか、RubyMine Slackに参加することをお勧めします!

RuboCop

RuboCop

重大度のマッピング

これまでRubyMineはRuboCopとIDEのインスペクションの重大度をマッピングするのに定義済みのロジックを使用していました。 このリリースではデフォルトのマッピングを変更し、特定のRuboCop offense(違反)に対する重大度を増減できるようになりました。 詳細については、こちらのRuboCopに関するドキュメントをご確認ください。

コードインサイト

Struct用のコードインサイトを改善

Struct用のコードインサイトを改善

構造体型用のコードインサイトが改善されたため、必要な構造体型の使用箇所を検索し、その宣言にジャンプできるようになりました。 Find usages(使用箇所を検索)に関するその他の改善内容については、こちらのブログ投稿をお読みください。

fixture呼び出しでの型のサポート

fixture呼び出しでの型のサポート

新バージョンのRubyMineでは、Minitest/Test::Unitのテストにおけるfixture呼び出し用のコードインサイトを改善しました。 エディタを使って該当する呼び出しを自動的に補完し、関連するデータベースフィールドに移動できるようになりました。

Rails

Run AnythingによるRailsタスクの実行

Run AnythingによるRailsタスクの実行

バージョン 2019.3以前では、Rails generatorやRakeタスクは専用のポップアップで実行されていました。 このバージョンからは、Run anythingをタスクやジェネレータを実行するための単一の入口点として使用できるようになりました。 例えば、⌥R / Ctrl+Alt+Rを押してRun Anythingポップアップを呼び出し、rakeコマンドを自動的に追加することができます。 詳細については、このブログ記事を参照してください。

新規RailsプロジェクトでのStimulusとElmの使用

新規RailsプロジェクトでのStimulusとElmの使用

2019.3では、StimulusまたはElmを新規RailsプロジェクトのJavaScriptライブラリとして指定できるようになりました。

デバッガ

Railsコンソールでの対話式デバッグ

Railsコンソールでの対話式デバッグ

RubyMineのRailsコンソールでデバッグを行う際、プログラムの状態を調査できるようになりました。 この操作を実行するには、ブレークポイントにヒットしたあとにInteractive consoleタブに切り替えてください。

YARD

@paramおよび@return注釈に対する型推論

@paramおよび@return注釈に対する型推論

当社は定期的にYARDへの対応を強化し、YARDタグの作成や管理を支援しています。 バージョン2019.3では、RubyMineは、Add @param tagおよびAdd @return tagインテンションで使用するパラメータと戻り値の型を親クラスから推論します。

RubyMineのYARDに関する機能の概要については、YARDのサポートをお読みください。

コードスタイル

メソッドチェーンの位置合わせ

メソッドチェーンの位置合わせ

バージョン2019.3では、チェーンメソッドをさまざまな方法(最初のレシーバー、または先頭のドット)で位置合わせできる新しいコードスタイルオプションを追加しました。 このオプションを設定するには、Settings/Preferences | Editor | Code Style | Ruby | Wrapping and Bracesを開き、Chained method callsグループに移動してください。

著作権

Rubyファイルの著作権表示

Rubyファイルの著作権表示

定義済みの著作権表示をRubyファイルに素早く追加できるようになりました。 詳細については、著作権に関するヘルプトピックをご覧ください。

JavaScript/CSS

CDNを使用して追加されたCSSクラスの補完

CDNを使用して追加されたCSSクラスの補完

プロジェクト内でTwitter Bootstrapや別のCSSライブラリを使用し、それをビューファイル内でCDNからリンクしている場合、当該ライブラリのソースをプロジェクトに追加することなくそのクラス名を補完できるようになりました。

CSSの引用符スタイル設定

CSSの引用符スタイル設定

新しいQuote Marksオプションを使用してCSS(およびSCSSファイル、Lessファイル)で使用すべき二重引用符や単一引用符を選べるようになりました。 Enforce on Reformat(再フォーマット時に強制する)を選択すると、選択した引用符スタイルがコードを再フォーマットする際(コード補完を使用して新しいコードを追加する場合に限りません)に適用されます。

個別ファイル内のVue.jsコンポーネントのサポート

個別ファイル内のVue.jsコンポーネントのサポート

RubyMineは別ファイル上に存在する別々のコンポーネント部品間のリンクを認識するようになり、プロパティ、データ、メソッドを適切にコード補完できるようになりました。

Git

Cloneダイアログの改良

Cloneダイアログの改良

Cloneダイアログ(VCS | Get from Version control)を改善しました。 このダイアログからログインが可能で、アカウントや組織別にグループ化されたすべてのリポジトリのリストをすぐにプレビューできます。

任意のブランチをプッシュ

任意のブランチをプッシュ

メニューでブランチを選択し、Pushアクションを使用すると呼び出せるBranchesポップアップから任意のブランチの変更を直接プッシュできるようになりました。

データベースツール

基本的なMongoDBのサポート

基本的なMongoDBのサポート

RubyMine 2019.3はMongoDBを初期サポートしています。 データベースエクスプローラー内でコレクションやフィールドを表示し、クエリの実行などを行えます。

HTTPクライアント

.httpファイル内の動的変数

.httpファイル内の動的変数

バージョン2019.3では、HTTPリクエストで動的変数を使用できます。 このような変数には$uuid、$timestamp$randomIntなどがあります。これらの変数を必要な場所に挿入するには、中括弧2つを使用してください。

ファイル内の全リクエストを実行

ファイル内の全リクエストを実行

HTTP Clientでは、1つの.httpファイル内に複数のリクエストを書き込むことができるようになりました。 これは、先行するリクエストの結果に応じて後続のリクエストが決まるような連続リクエストを発行する必要がある場合に便利です。 このサンプルアプリを使用し、新機能をお試しください。

その他の変更:

  • RubyMotionプラグインとHeroku Integrationプラグインのサポートを廃止しました
  • Edit | Sort Linesコマンドを使用して行をアルファベット順に並べ替えられるようにしました。
  • Findアクションを使用する際に選択した領域内を検索できるようになりました。
  • (一部のプラグインに対して)IDEを再起動せずにプラグインを管理できるよう、改善を実施しました。
  • Dockerターミナルを改良しました。
  • Kubernetesのサポートを強化しました。
2019.2(7月29日)

デバッガ

デバッガ速度比較 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のエピソードをご覧ください。

Enum(列挙型)のサポート

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)を使うと、可能な場合に追加の変数を別のデストラクチャリングに置き換えることができます。 デストラクチャリングを完全に削除するには、デストラクチャリングをプロパティまたはインデックスアクセスに置き換えるというインテンションアクションを使用してください。

Refactoring Previewでの動的な使用箇所

名前の変更リファクタリングの改善

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

詳細については、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モデルのクエリフィールドメソッドのサポートを改善