RubyMine 2018.3の新機能

コードインサイト

Support for Rails scopes

Railsスコープ

RubyMineはRailsのスコープをより良く理解するようになりました。例えばスコープに関連付けオブジェクトを追加すると、利用可能なfinderメソッドをサジェストします。またチェーンされたスコープでもコード補完やナビゲーションが効きます。

Struct support

Struct

Structをフルサポートします。Rubyの通常のクラスやインスタンスと同様に補完、ナビゲート、リファクターがStuctクラスに対して働きます。

Nullability analysis for Ruby

RubyのNullabilityアナリシス

Nil dereference インスペクションで現在のコンテクストよりnilエラーとなる可能性のあるコードをチェックします。たとえばnilになる可能性のある変数に対してメソッドコールを行っている箇所などを指摘します。

ローカライゼーション

I18n翻訳の作成

新しいI18nダイアログで辞書を一度にまとめて作成できます。以前と同じく、文字列にカレットを置いて Alt+Enter を押せばローカライズ用のymlを生成出来ます。生成後はCmd/Ctrlとクリックで既存の翻訳へジャンプ出来ます。

スコープとlazy key

名前付きのキーとlazy lookupの翻訳を簡単に作成できます。翻訳のキーをエディタ内で即座に作成できます。

翻訳プレビュー

RubyMineはI18nキーの代わりに実際の翻訳をプレビューできます。コントローラーまたはビューファイルのキーでCmd./Ctrl.を押ししてください。プレビューで何語を表示するか設定することも出来ます。

i18nに関して、他の改善は i18n features in RubyMine でご確認頂けます。

リファクタリング

New Extract Parameter dialog

パラメータの抽出

 Refactor | Refactor this | Extract Parameterよりパラメータ抽出リファクタリングが行えます。引数を抽出するだけでなく、デフォルト値を設定したりオプショナルにしたり、ブロックとして渡したり出来ます。

Inline refactoring improvements

インライン化の改善

インライン化リファクタリングを改善し、不要なメソッドや変数をより安全にインライン化出来るようになりました。特に引数や変数を伴うメソッドのインライン化はより確実になりました。

Extract Substrings to variables and constants

サブストリングを変数、定数として抽出

文字列の一部分を変数や定数として抽出するリファクタリングも実装しました。

リファクタリングについて詳しくはこちらをご覧ください – RubyMine Refactorings: Overview & Improvements.

New intention actions

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

新しいインテンションアクションでコードの可読性を向上させることが出来ます。例えばドモルガンの法則を適用して見るに堪えない否定式をシンプルにしたりブロックコールをメソッドにしたりできます。怪しい匂いのするコードにカーソルを当ててAlt + Enterを押して適切なクイックフィックスを選んでください。

詳しくはこちらのブログポストをご覧ください:  Intention Actions in RubyMine.

テスト

Test gutters

テストガター

テストメソッド脇に便利なガターアイコンが表示されます。ファイル内で実行可能なテストを示すこのアイコンはコンテクストメニューよりも手軽かつ素早くテストを実行することが出来ます。

詳しくはこちらのブログポストをご覧ください: Running tests in RubyMine

Git

Github pull requests

GitHubプルリクエスト

IDEから直接GitHubプルリクエストを見られるようになりました。VCS | Git | View Pull Requestsで表示できるプルリクエスト一覧からラベル、担当者、変更内要のdiffをプレビューしたり、コンテクストメニューを使ってローカルブランチを作って通常のブランチと同じくマージしたりできます。

Gitサブモジュールのサポート

ついにGitサブモジュールをサポートします!クローン、アップデート、コミット、diffの確認、コンフリクトの解決まで行えます。

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

New Darcula color scheme

Darculaテーマのアップデート

Darculaテーマを調整し、より目に優しく、統一感が向上しました。

以前のDarculaがお好みの場合はPreferences / Settings | Editor | Color Scheme | Ruby より歯車アイコンを押してTransform current scheme to Darcula 2018.2を選択してください。

New Search Everywhere dialog

検索ポップアップ

プロジェクトとIDE内をより効率的にナビゲート出来ます。改善されたSearch Everywhereは他のナビゲーションダイアログであるFind ActionGo to classGo to fileGo to symbolと統合されま、tabキーで別の検索コンテクストに移動出来ます。もちろん全てのナビゲーションダイアログは依然これまでと同じショートカットでアクセスできます。

New Plugins UI

プラグイン設定ページ

設定画面のPluginsページを刷新し、より簡単にプラグインを検索、インストール、更新、アンインストール、管理出来るようになりました。プラグインを名前だけでなくタグでも検索出来るようになりました。また検索結果をダウンロード数、名前、レート、featured、更新日でソートすることが出来ます。

JavaScript

Improved completion in Angular templates

Angularサポートの改善

Angularテンプレートにおけるコード補完と変数、pipe、async pipe、テンプレートリファレンス変数のの定義箇所へのジャンプがより正確になりました。AngularとAngularJSサポート回りで50を超える既知の問題を修正しました。

Autoimports in JavaScript

JavaScriptで自動インポート

プロジェクトの依存からJavaScriptで必要なインポートを追加します。これはパッケージ内にTypeScript定義がある場合、またはパッケージがESモジュールとして書かれたソースを含む場合に働きます。

Extract CSS ruleset

HTMLとスタイルシート

Extract ruleset アクションでCSS宣言から新しいルールセットを抽出できます。

CSS、SCSS、Sass、Less、Stylusのスタイル設定にuse of blank linesが加わりました。さらにブロック内のCSSプロパティをアルファベット順またはカスタム順にソート出来ます。

WebStorm 2018.3の新機能でWebStrom由来の新機能をご確認ください。

Markdown

Markdown improvements

参照リンクの抽出

Introduce reference アクションにより、インラインリンクへの参照を作成出来ます。ファイル内の重複するリンクを洗い出し、新しく作成した参照で置き換えるようサジェストします。

さらにテキストを打ち消したり、ヘッダサイズを切り替えたり出来ます。ツールバーでこれらの操作は行えます。

その他の改善:

  • 条件式のキーワードハイライトの改善
  • YAMLの値をflattened nested key(”my.nested.property”など)で検索
  • YAML値へのパスをパンくずよりコピー
  • attr_accessorsサポートの改善
  • JavaScriptファイルのパラメータヒント
  • ハイコントラストテーマ
  • i18nで安全な削除
  • アクティビティモニタ