IntelliJ IDEA 2020.2 の新機能

IntelliJ IDEA 2020.2 では GitHub プルリクエストのレビューとマージを IDE 内から直接行うことが可能になりました。Inspections ウィジェットでファイル内の警告とエラーへのナビゲーションが容易になったことに加え、Problems ツールウィンドウで現在ファイル内のすべての問題箇所を表示できるようになりました。また、変更によって他のファイルに悪影響が出る場合に通知を受け取ることができるようになりました。 Jakarta EE のサポート開始、および、Quarkus / Micronaut / OpenAPI のサポートが強化されています。

Java

Java 15 のサポート

Java 15 のサポート

Java 15 のリリースは 9 月に予定されていますが、IntelliJ IDEA 2020.2 はすでにその対応を行っています。 Record(レコード)機能のサポートが更新され、第 2 プレビュー段階にあります。 また、基本的な sealed クラスのサポートも追加しました。 当然ながら、IntelliJ IDEA はテキストブロックも完全にサポートします。

Jakarta EE ウィザード

関連する問題のインレイヒント

外部で使用されているクラス、メソッド、フィールドのシグネチャーの変更によりエラーが発生する場合、IDE がインレイヒントで通知します。 関連する問題のインレイヒントをクリックすると、外部ファイルで発生している関連する問題のリストが Find ツールウィンドウに表示されます。

Scala 3 サポート

複数の Structural Search および Replace インスペクションを作成可能

IntelliJ IDEA は必要に応じて Structural Search と Replace を使用して特定のパターンに一致するコードブロックを検索および置換できます。 IntelliJ IDEA 2020.2 では、複数の構造検索テンプレートをインスペクションとして作成できます。 それぞれの SSR(Structural Search および Replace)インスペクションに対して重大度レベルの指定と説明の追加を行い、それらを個別に有効化または無効化できます。

Scala 3 サポート

実行時に発生する例外の原因を特定

例外のスタックトレース分析をデータフロー分析で強化しました。 スタックトレースをクリックすると、コード内で例外が発生した場所に正確に移動することができ、発生原因を突き止めるのに役立つ提案が表示されます。

Scala 3 サポート

Stream API メソッドの自動補完を改善

IntelliJ IDEA 2020.2 では Stream API への対応がさらに強化されています。 'stream()' を入力してからストリームの正しい操作を入力する代わりに、コレクション名の直後にストリームのメソッド名を入力すると、IntelliJ IDEA が自動的に 'stream()' を挿入します。 これはどのストリーム操作にも機能します。

Scala 3 サポート

Introduce Variable の範囲

IntelliJ IDEA 2020.2 では、Introduce Variable リファクタリングを使用して選択範囲にある変数の出現箇所を個別に置換できます。 単一の出現箇所やすべての出現箇所にとどまらず、さまざまな置換オプションを選択できるようになりました。 それぞれの選択肢にマウスを移動すると、どの出現箇所が新しい変数に置換されるかがハイライトされます。

Java ライブテンプレートのクリーンアップ

整理された Java ライブテンプレート

新しい Java ライブテンプレート設定にはすべての plain / surround / other / output / iterations グループが含まれているため、もう他の Java 関連のテンプレートを検索する必要はありません。 ニーズに合ったライブテンプレートを探す際に迷うことはなくなります。 個別の Groovy ノードも使用できます。

エディタ

Problems ビュー

Problems ツールウィンドウ

現在ファイルに関連する警告とエラーを問題の説明と共に表示する Problems ツールウィンドウを追加しました。 このツールウィンドウから問題箇所を右クリックして問題が発生したコード行に移動し、Alt+Enter で問題箇所を一つずつ修正できます。

エディターの Inspections ウィジェット

Inspections ウィジェット

Inspections ウィジェットを使用すると、警告、エラーおよびその他の問題を簡単に検索し、F2 を押すか矢印アイコンをクリックしてそれらの間を簡単に移動することができます。 Inspections ウィジェットからは、ハイライトする問題を None(なし)、Errors Only(エラーのみ)、All Problems(すべての問題)の中から選択できます。

Intentions プレビュー

Intentions プレビュー

インテンションアクションを適用した場合に想定される結果を確かめるため、実際にアクションをコードに適用する前に結果をプレビューできます。 Alt+Enter を押して Show Context Actions を呼び出し、必要なインテンションアクションを選択してから Alt+Space(macOS の場合)または Ctrl+Shift+I(Windows および Linux の場合)を押すと、結果のプレビューが表示されます。

スペルチェッカーの改善

組み込みのスペルチェッカーが改善されました。より高速化され、適合性の低い提案が除外され、コンテキストに応じて有効な候補がランク付けされるようになりました。 また、IDE はファイルの最初の数段落から言語を判断し、対応する言語モデルを有効化することを提案します。

バージョン管理

GitHub プルリクエストの完全サポート

プルリクエストの詳細をワンクリックで独立したツールウィンドウに表示できるようになりました。 メインのエディターウィンドウに会話が表示され、コメントをそこで直接追加できます。 コミット前のチェック結果がウィンドウの下に表示されます。 プルリクエストを管理する権限がある場合は、プルリクエストの閲覧 / 割り当て / 管理 / マージ、コメントの表示と送信、変更の承認を IDE 内で直接行えるようになりました。

詳細については、ブログをご覧ください。

Git 操作ダイアログの改善

このリリースでは Merge / Pull / Rebase ダイアログを改修して外観を統一しました。 また、実行予定の Git コマンドを明確に識別できるようにダイアログを改修し、不足していた一部のオプションを含めました。 さらに、--rebase--no-verify を Pull ダイアログと Merge ダイアログにそれぞれ追加しました。

Compare Branches アクションの結果表示を改善

Compare Branches アクションの結果表示を改善

IntelliJ IDEA 2020.2 で 2 つのブランチを比較する際は、エディター内で各ブランチのログが開かれて単一のビューにコミットが表示されます。 VCS ツールウィンドウとは対照的に、このビューには各ブランチのコミットと影響を受けたファイルの詳細なレポートを表示できるだけのスペースがあります。

ログからローカルコミットを squash

ログからローカルコミットを squash / drop

ローカルブランチから複数のコミットを選択し、それらに対して squash を実行できるようになりました。 Git ツールウィンドウで Log タブを開き、ローカルコミットを選択して Squash Commits を選択します。 コミットメッセージを変更すると、そのコミット内のすべての変更が更新されたメッセージと共に単一のコミットにまとめられます。 さらに、Git ログからコミットを drop(削除)できるようになりました。

WSL2 にインストールされた Git のサポート

IntelliJ IDEA 2020.2 では、Linux または Windows ファイルシステムのプロジェクトを処理する際に WSL2 にインストールされた Git を使用できます。 WSL のプロジェクトを開くと、IDE が自動的に WSL にインストールされた Git に切り替え、関連するすべての機能が使用できるようになります。

フレームワークとテクノロジー

Jakarta EE 9 のサポート Ultimate

当社は 9 月にリリース予定の Jakarta EE 9 に対応しており、すでに Jakarta EE で使用できるすべての機能をサポートしています(CDI、JPA、Batch、Bean Validation、JSF、JAX-RS、WebSocket、Servlet、JSP、JSON-P、JSON-B、Security、EJB および JTA の各仕様などを含みます)。

Jakarta EE ウィザード

Java Enterprise プロジェクトウィザード Ultimate

Java EE 8 または Jakarta EE 9 のプロジェクトを作成する必要がある場合は、New Project ウィザードを使用して実行できるようになりました。 新しい Jakarta EE プロジェクトを数ステップで作成できます。 Java のバージョン、ビルドツール、拡張機能、その他のオプションを選択してセットアップできます。

Quarkus 構成ファイル(.properties および YAML)のサポート Ultimate

Quarkus 構成ファイルを扱いやすくするため、IDE がコード補完とハイライトの機能を提供し、.properties および YAML 構成ファイルの両方で未使用のコードをグレー表示するようになりました。 また、設定ファイルから直接設定済みの Bean にジャンプしたり、そこから戻ってきたりできます。

Quarkus CDI サポートの改善 Ultimate

IDE の現在のバージョンでは、注入された Bean に対応したガター移動機能と Quarkus 簡略化構文で完全に機能する更新版のインスペクションを使用できます。 さらに、IntelliJ IDEA 2020.2 は @DefaultBean および @AlternativePriority アノテーションと、修飾子のみのインジェクションをサポートしています(@Inject を使用する必要はありません)。

Swagger UI のサポート

Swagger UI のサポート Ultimate

新たに追加された Swagger UI 統合を利用し、IntelliJ IDEA のエディターに組み込まれたパネルで OpenAPI をプレビューできるようになりました。 これはテストを単純化する素晴らしいアップデートです。

Jakarta EE ウィザード

Swagger Diff Ultimate

IDE が改良され、OpenAPI 仕様間の構造的な差分を計算できるようになりました。 IntelliJ IDEA 2020.2 は Swagger/OpenAPI の仕様を認識し、JSON または YAML ファイルをその構造に従って比較するため、検出した差分をプレビューできます。 そのためにはコンテキストメニューから Compare Open API Specifications を選択するか、Search Everywhere ダイアログからこのアクションを呼び出してください。

Jakarta EE ウィザード

Micronaut 対応のプロジェクト生成 Ultimate

他にも New Project ウィザードと Micronaut フレームワーク向けの有益なアップデートがあります。 新しい Micronaut プロジェクトをウィザードから直接作成できるようにしました。 段階を追ってプロジェクトを構成し、すぐに作業を開始できます。

Micronaut と Amazon SQS API のメッセージキューをサポート Ultimate

Micronaut アプリケーションで RabbitMQ か Kafka による非同期通信を使用しているユーザー向けのアップデートです。 ガターアイコンを使用してメッセージキューとトピックを移動し、使用箇所を検索し、名前を補完できます。 Amazon SQS API に対しても同じ機能一式を使用できます。

JAX-RS および MicroProfile REST クライアント HTTP リクエストの生成

JAX-RS および MicroProfile REST クライアントの HTTP リクエスト生成 Ultimate

HTTP リクエストの作成とテストを簡単にするため、IntelliJ IDEA は JAX-RS および MicroProfile の HTTP リクエストを自動生成し、それを組み込みの REST クライアントで開きます。 プロジェクトでエンタープライズフレームワーク(Spring、JAX-RS、Retrofit、OkHttp、Micronaut)のいずれかを使用している場合、インテンションアクションを使用して任意の URL で HTTP リクエストを生成することもできます。

REST Assured テスト対応の URL コード補完

REST Assured テスト対応の URL コード補完 Ultimate

REST Assured テスト向けに URL パス参照をコード補完し、関連リソースに移動する機能を追加しました。

Selenium プラグインで Selenoid の統合 Ultimate

Selenium プラグインが Selenoid と統合され、browsers.json ファイルから直接新しいテスト環境を簡単に実行できるようになりました。 Selenoid コンテナーが起動すると、必要なブラウザーのイメージがすべて自動的にプルされます。

プロファイラー

HPROF メモリビューアー

HPROF メモリビューアー Ultimate

内部ロジックが改善されたビューアーは、ヒープを分析し、大量のメモリを使用しているコード片を検出し、メモリリークの原因を発見するのに役立ちます。 HPROF メモリビューアーには算出したオブジェクトの保持サイズ、ガベージコレクタールートへの最短パス、オブジェクトのドミネーターツリー(保持オブジェクト)、着信参照が表示されます。

ユーザーエクスペリエンス

構築済み共有インデックスによる高速なインデックス作成処理

インデックスをローカルで構築する代わりに別のマシンで生成したインデックスをダウンロードすることで、インデックス作成処理を高速化できるようになりました。 JDK の構築済み共有インデックスを使用するか、カスタム共有インデックスを生成してターゲット IDE ビルドに配布できます。 単に Shared Indexes プラグインをインストールするだけです。 詳細はこちら

インデックス作成中のハイライトと補完

インデックス作成中の動作を改善

IntelliJ IDEA 2020.2 がプロジェクトのインデックスを作成している間も、コーディングを続行できます。 IDE がインデックスを作成中も Java と PHP のコード補完候補を表示するようになりました。

ターミナル

IDE の機能をターミナルから実行可能

IDE の機能をターミナルから実行するオプション

IDE の機能をターミナルから直接呼び出せるようになりました。 IntelliJ IDEA 2020.2 では、対応する GUI で Ctrl + Enter / Cmd + Enter のショートカットを使用してハイライトされたコマンドを実行できます。 デバッグモードでハイライトされたコマンドを実行するには、Ctrl + Shift + Enter / Cmd + Shift + Enter を使用してください。

この機能に関する詳細は、ブログ記事を参照してください。

ビルドツール

Maven Wrapper のサポート

IntelliJ IDEA 2020.2 は、プロジェクトに必要なバージョンの Maven を自動インストールする Maven Wrapper をサポートしています。 Maven Wrapper が存在して構成されている場合、IDE は自動的にそれを使用して必要な場合に変更をインポートします。

プロジェクト別の Maven バージョン設定

以前のように開いているすべてのプロジェクトに同じバージョンの Maven を使用するのではなく、各プロジェクトに Maven バージョンを設定できるようになりました。

ビルドツールの出力表示

より一貫したユーザーエクスペリエンスを提供するため、IntelliJ IDEA ネイティブのビルダーのビルド出力を Messages ツールウィンドウではなく Build ツールウィンドウに表示するようにしました。

build.gradle ファイルでのコードインサイトを改善

IntelliJ IDEA 2020.2 は、build.gradle ファイル内のプロジェクト名の補完とプロジェクト名に対応した移動機能を提供しています。

JavaScript と TypeScript

新しいスマートなインテンションとインスペクション

生産性を向上する新しいインテンションアクション Ultimate

例えば、数字インデックスを使った for ループを forEach 配列メソッドにすばやく変換できます。 また、エディター内に JavaScript および TypeScript ファイル内のドキュメントコメントが直接表示されるようになったため、これらのコメントを閲覧するのが楽になり、集中力の低下を最小限に抑えられるようになりました。

Vuex と Composition API のサポート

Prettier をデフォルトフォーマッターとして設定 Ultimate

このリリースからは、Prettier を簡単にデフォルトフォーマッターに設定してコードを整形できます。 設定で新しい On code reformat チェックボックスをオンにするだけで、IDE が .js / .ts / .jsx / .tsx ファイルの整形に Prettier を使用するようになります。 必要に応じてその他のファイルタイプも追加できます。

Java ライブテンプレートのクリーンアップ

Nuxt.js のサポート Ultimate

Nuxt.js をサポートし、Vue 固有のコードスタイル設定を追加しました。Vue.js フレームワークを使用している方には朗報です。

データベース

セルの値を独立したエディターで操作

セルの値を独立したエディターで操作 Ultimate

このリリースでは、セル内に長い値がある場合に大いに役立つツールがいくつか導入されています。 このリリースからは、長い値を独立したパネルで表示および編集できます。 エディターのパネルでは、右側のツールバーでソフトラップモードを切り替えることができます。

ブール値用の新しい UI

ブール値用の新しい UI Ultimate

ブール値がチェックボックスではなく生の値として表示されるようになり、簡単に監視と編集を行えるようになりました。 f、t、d、n、g、c のいずれかを入力すると、対応する値(false、true、default、null、generated、computed)を入力できます。 それ以外の文字を入力すると、候補値を含むドロップダウンリストが表示されます。

データエディターの DML プレビュー

データエディターの DML プレビュー Ultimate

変更を含むクエリをデータエディター内でプレビューできるようになりました。 そのためには、保留中の変更がある場合に有効になる DML ボタンをクリックします。

Scala 3 サポート

Google BigQuery 言語 Ultimate

Google BigQuery に部分的に対応しました。 IDE はクエリを適切にハイライトし、コーディングを支援します。

Scala

Implicits の自動インポート

Implicits の自動インポート

View | Show Implicit Hints を使用して Implicits(存在しないものも含む)を表示できますが、Implicits のインポートは容易ではありませんでした。

新しい Auto-import for implicits アクションは、未解決参照の自動インポートとまったく同じように機能します。 自動ポップアップによりこの機能は発見しやすくなりましたが、自動ポップアップを無効化して Import… クイックフィックスを Alt + Enter で呼び出すこともできます(詳細情報)。

Implicits の自動インポート

インデントベースの波括弧処理

Scala 開発者の日常生活で、波括弧の追加と削除は欠かせないものです。 この作業を楽にするため、私たちは真っ先に式を折り返し / 折り返し解除するインテンションを追加しましたが、手動で呼び出す必要がありました。 その後、対になる波括弧の自動的な追加と削除に対応しました。

今回はこの動作をさらに改善し、コードのインデントに応じて両方の括弧がその場で自動的に追加および削除されるようにしました。 そのため、Scala 2 でも波括弧を維持しながら重要なインデントを試すことができます。 この機能を活用するには、波括弧のことは考えずに IDE に作業を任せてください。

第一級コンパニオン

Scala では、コンパニオンクラスまたはトレイトとコンパニオンオブジェクトには特別な関係があります。 これまで長らくこの関係を Project ビューに反映してきましたが、それ以外の場合はコンパニオンをその他任意のクラスかオブジェクトとして取り扱っていました。

今後はコンパニオン用に移動操作に対応したガターアイコンを表示します(Settings | General | Editor | Gutter Icons で設定可能)。 また、Go To を classtraitobject のいずれかのキーワードに使用することでコンパニオンに移動することもできます。 コンパニオンオブジェクトメンバーを簡単に自動補完または自動インポートできるようになりました。

Scaladoc のエディター内表示

Scaladoc のエディター内表示

Scaladoc のマークアップは編集しやすいですが、それほど閲覧しやすいものではありません。* カラム、タグ、マクロの山をかき分けて目を通さなければなりません。 Scaladoc をエディター内に表示できるようになったため、見た目がすっきりと簡潔になりました(Editor | General | Appearance で表示を切り替えることができます)。

また、Quick Documentation ポップアップでの Scaladoc の表示も改善しました。段落、リスト、マクロを適切に処理できるようになりました。

コード補完の改善

補完の精度と速度を改善したほか、特徴ある2 つの新機能を導入しました。 まず、現在のスコープに適切な値が存在する限り、メソッドの名前とその引数をワンステップで自動補完できるようになりました。

また、ドット表記を使用して "static" 関数を引数に適用できるようになりました。これは、代数的データ型(ADT)と組み合わせて使用できます。 この機能は Hindley-Milner 型システムを使用しない言語の Hoogle を再想像する私たちの試み(現在進行中)である Hoogle Completion の一部です。

Docker

安全に Docker に接続

安全に Docker に接続

新たに IntelliJ IDEA から Docker デーモンへの TLS 接続に対応したため、IntelliJ IDEA 2020.2 を使用して Windows 上の Docker に安全に接続できるようになりました。

Kubernetes

複数の構成ファイル

複数の構成ファイル Ultimate

Preferences / Settings | Build, Execution, Deployment | Kubernetes でカスタム kubeconfig ファイルを指定できるようになりました。 または、Kubernetes のルート項目を選択する際に Services ビューで Show Settings… ボタンをクリックしてください。 カスタム kubeconfig ファイルは全体、または現在のプロジェクトに対して指定することもできます。 言い換えると、個別の kubeconfig ファイルを各プロジェクトに持たせることができます。

ConfigMap と Secret のサポート

ConfigMap と Secret のサポート Ultimate

現在のプロジェクトおよびクラスターからの ConfigMap/Secret の補完に対応しました。 クラスターの項目は補完リストでは青色でマークされています。 ConfigMap/Secret の使用箇所からプロジェクトまたはクラスター内の対応する ConfigMap/Secret リソースに移動できるようになりました。 ConfigMap/Secret キーにも同じ動作に対応しています。

その他

  • IntelliJ IDEA 2020.2 には Android Studio 4.0 の変更内容がすべて含まれています。 今すぐ詳細を確認してください。
  • IntelliJ IDEA はスクリーンリーダーが使用されていることを検知し、IDE のアクセシビリティ機能を自動的に有効化します。
  • IntelliJ IDEA 2020.2 では、Linux 上で Unicode 絵文字を使用できます。 今こそ出発のときです。 🚀
  • パフォーマンスと表示の問題を回避するため、新たに JCEF との統合機能を提供して IntelliJ Platform のプラグインを実行できるようにしました。