IntelliJ IDEA 2019.3の新機能

IntelliJ IDEA 2019.3では起動の高速化、テーマやキーマッププラグインのインストールの簡略化、VCSワークフローの強化、マイクロサービスフレームワーク、MongoDBへのサポート追加などの大幅なパフォーマンス改善やユーザビリティの改善が行われています。

パフォーマンス向上

起動の高速化

起動の高速化

このリリースでの重要なパフォーマンス改善の一つには、起動時間が従来よりも短くなったことが挙げられます。 アーキテクチャを大幅に変更してIDEが起動時に実行するタスクの一部を並列化し、それらのタスクが順次実行されないようにしました。

メモリ消費量の削減

メモリ消費量の削減

IntelliJ IDEA 2019.3ではパフォーマンスを最適化し、大規模なGradleプロジェクトをインポートする際のピークメモリ消費量を削減しました。

レスポンシブなUI

皆様からご報告いただいた1600件超のフリーズ問題を解決しました。 この問題とは別に、MavenプロジェクトでPOM.xmlファイルを編集する際の問題を解決しました。これにより、補完候補が遅延なく表示されるようになりました。 その他の修正により、大規模プロジェクトにおけるVCSのステータス更新処理の高速化、ignoreファイルの処理の改善、プロジェクトツリーの描画の高速化、多数のエディタやデバッガータブを使用して作業する際のパフォーマンスの向上、およびその他の高速化が実現しました。

Javaのパフォーマンス向上

このリリースではJavaの型推論に多くの改善が加えられ、さまざまなエディタのフリーズが解消されたほか、長いメソッド呼び出しチェーンに対するJava型推論が高速化されています。 ‘Join Lines’(行の結合)アクションを複数行に適用する際の速度が向上しました。 また、多数の引数が格納される汎用的な可変長引数を使用したメソッドを中心に、Javaコードのハイライト表示が高速化されます。

Kotlinのパフォーマンス向上

IntelliJ IDEA 2019.3にはKotlin 1.3.60がバンドルされており、エディタでのハイライト表示の高速化などの目覚ましい高速化が行われています。

ユーザビリティの改善

起動の高速化

起動の高速化

このリリースでの重要なパフォーマンス改善の一つには、起動時間が従来よりも短くなったことが挙げられます。 アーキテクチャを大幅に変更してIDEが起動時に実行するタスクの一部を並列化し、それらのタスクが順次実行されないようにしました。

メモリ消費量の削減

IntelliJ IDEA 2019.3ではパフォーマンスを最適化し、大規模なGradleプロジェクトをインポートする際のピークメモリ消費量を削減しました。

スムーズスクロール

小規模ながらも有益な改善点として、マウスホイール使用時のスクロールがさらにスムーズになったことが挙げられます。

インポートされたMavenプロジェクトまたはsbtプロジェクトの自動設定

sbtプロジェクトまたはMavenプロジェクトをインポート、作成、または開く際、IntelliJ IDEAが当該プロジェクトを自動セットアップするようになりました。そのため、今後は手動でこれらのプロジェクトの設定を調整する必要はありません。

コンテキストアクションの動作を改良

アクションを選択してダイアログを閉じた後でも、インテンションアクションのダイアログでデフォルトで使用可能なすべてのインテンションアクションがIDEに表示されるようになりました。

機能強化

Java 13の各種機能に対するサポートを拡張

Java 13の各種機能に対するサポートを拡張

Java 13のテキストブロックに対するサポートを拡張し、引用符を3つ挿入した際に自動的にテキストブロックを整形するようにしました。

挿入できるテンプレート言語を追加

挿入できるテンプレート言語を追加

IntelliJ IDEA 2019.3では、コードに挿入できるテンプレート言語が増えました。具体的には、Pug(旧Jade)、Handlebars、EJS、Slimを挿入できるようになりました。

新しい ‘Field Call Hierarchy’ アクション

新しい ‘Field Call Hierarchy’ アクション

Ctrl+Alt+Hで新しい ‘Field Call Hierarchy’(フィールドの呼び出し階層)アクションを呼び出し、選択したフィールドの階層を簡単に表示できるようになりました。

エラーとドキュメントのポップアップを統一化

エラーとドキュメントのポップアップを統一化

インスペクションによりハイライト表示されたシンボルの上にマウスを移動した際、コード参照情報に加えてエラーもポップアップに表示できるようになりました。 この機能を有効化するには、 Settings/Preferences | Editor | Generalで「Show quick documentation on mouse move」(マウス移動時にクイックドキュメントを表示)を選択してください。

Gitのチェックアウトワークフローの改善

Gitのチェックアウトワークフローの改善

混乱を避けるため、リモートブランチに対して、新しく名前が変更された「Checkout」アクションを呼び出すと、新しいローカルブランチが作成され、それがチェックアウトされ、アップストリームを追跡するように設定が行われるようになりました。 一方、ローカルブランチとリモートブランチ用に ‘New Branch from Selected’ アクションも追加しました。このアクションは、新しいローカルブランチを作成し、それをチェックアウトしますが、リモートブランチを追跡する設定は行いません。

ブランチのプッシュ方法をさらに簡略化

ブランチのプッシュ方法をさらに簡略化

また、pushのためにブランチをチェックアウトする必要がなくなりました。Git branchesポップアップでブランチを選択し、そこからブランチをプッシュするだけで済むので、時間を節約することができるようになりました。

Cloneダイアログの統一

Cloneダイアログの統一

さまざまなVCSホスティングサービスからプロジェクトを取得するUIを統一するため、「Clone」ダイアログを改修しました。 すでにVCSにログインしている場合は選択可能なリポジトリのリストが表示されますので、リポジトリのURLを入力する必要はありません。

マージの競合に関する詳細な情報

マージの競合に関する詳細な情報

merge、rebase、またはcherry-pick操作を実行中に競合が発生した場合に、Mergeダイアログに変更対象のソースに関するより詳細な情報が表示されるようになりました。 「Show Details」リンクをクリックするだけで、最終的なコードの状態を引き起こしたコミットのリストを取得できます。

新しいフレームワークとテクノロジー

マイクロサービスフレームワークのサポート Ultimate

IntelliJ IDEAプロジェクトで最新技術を有効活用できるよう、バージョン2019.3ではMicronaut、Quarkus、Helidonに対する第一弾のサポートが追加されました。 Javaプロジェクトにマイクロサービスベースのアーキテクチャを採用している場合、完全なコーディング支援、ナビゲーション、インスペクション、使用箇所の検索、その他の機能を利用できます。

OpenAPIとSwaggerのサポート

OpenAPIとSwaggerのサポート Ultimate

スキーマによる検証を提供するSwagger v2やOpenAPI v2を新たにサポートし、APIの説明を含むYAML/JSONファイルでのコード補完、ナビゲーション、使用箇所の検索、Renameリファクタリングを導入しました。

新しいEndpointsビュー

新しいEndpointsビュー Ultimate

最新の Endpoints ツールウィンドウは、プロジェクト内でHTTPプロトコルとWebSocketプロトコルに使用されるクライアントAPIとサーバーAPIの両方の集約ビューを提供します。 さらに、このビューはIntelliJ IDEAで現在開いているすべてのプロジェクトに拡張できます。

Spring Web Fluxのサポート

Spring Web Fluxのサポート Ultimate

SpringツールウィンドウのMVCビューでWeb Flux URLマッピングの完全なリストを表示し、その間を移動し、URLやURLセグメント用のコーディング支援、検索、Renameリファクタリングを利用できます。

Java HTTPクライアントのサポート

Java HTTPクライアントのサポート Ultimate

IntelliJ IDEA 2019.3は、java.net.{URI/URL}、Retrofit v2、OkHttp v3、Injectable URLの参照のようなJava HTTPクライアントAPIでURLをサポートします。 コーディング支援、ナビゲーション、使用箇所の検索など、Javaで利用していた全ての機能をHTTPクライアントでも利用できるようになりました。

Project Reactorのサポート Ultimate

JavaおよびKotlin Reactorプロジェクトのインスペクションをご活用ください。これらのインスペクションは、スレッドがブロックされるべきではないコード箇所で検出された、スレッドをブロックするメソッド呼び出しを報告します。 FluxやMonoのメソッドのラムダ演算子からnull値が返される可能性がある場合にも警告します。 さらに、リアクティブなスタックフレームと中間変数値の有益なビューを提供する専用のReactorデバッグモードも追加されました。

MongoDBのサポート Ultimate

IntelliJ IDEA 2019.3では、待望のMongoDBへのサポートを追加しました。 MongoDBのデータソースを追加した後、データベースエクスプローラー内でコレクションやフィールドを表示し、クエリを実行してクエリの結果を確認できるようになりました。 今後のリリースでもMongoDBのサポートを拡充していくつもりです。

修正されたバグ

  • Homebrewを使用してGradleがインストールされたディレクトリを検出できるようになりました。
  • UIが改善され、より簡単にGradleのホームディレクトリを手動で設定できるようになりました。
  • IntelliJ IDEAがLinux上でのKWalletを使用したパスワード保管に対応しました。
  • JavaFXプロジェクトの場合、Scene Builderタブに埋め込まれたScene Builderを使ってFXMLファイルを表示できます。
  • SVNサーバーに到達できない場合に、SVNの ‘Authentication Required’(認証が必要です)ダイアログがポップアップし続けることがなくなりました。
  • ‘Git update’ 操作とrebaseの実装に関する問題を修正しました。
  • Gitログのインデックスを作成する際に進捗バーが表示されるようになりました。
  • ファイル履歴表示とVCSの注釈で、ファイルが作成された時間とコミットのタイムスタンプのどちらを表示するかを選択できるようになりました。

合計3904票もの影響を及ぼした1679件の問題を修正しました!