IntelliJ IDEA 2020.1の新機能

IntelliJ IDEA 2020.1では、Java 14のサポート、さまざまなフレームワークの新機能への対応、データフロー解析支援機能によるデバッガの強化、新しいLightEditモードの追加、JDKのダウンロードと構成機能の追加などが行われています!

Java

Java 14対応: Recordsとパターンマッチング

IntelliJ IDEA 2020.1はJava 14とその新機能に対応しています。 Recordsのコードインサイトに完全に対応しているほか、新しいRecordクラスの作成とそのコンストラクタ・コンポーネントの生成を素早く行うことができ、既存のエラーについて警告します。 また、instanceof 演算子のパターンマッチングにも対応しています。この対応には新しいインスペクションのほか、長たらしい instanceof とキャストを組み合わせた表現を新しい簡潔なパターン変数に置き換えて単純化するクイックフィックスも含まれています。

IntelliJ IDEAでのJava 14の使用に関する詳細

JDKのダウンロード

IDEからJDKをダウンロード

もう必要なJDKをウェブで検索する必要はありません。 IntelliJ IDEA 2020.1からはプロジェクトを作成・構成中にIDEから直接JDKのビルドをダウンロードし、セットアップできるようになりました。 ダウンロードしたプロジェクトを開くと、IDEがそのプロジェクトに構成されたJDKがお使いのコンピューターにインストールされているかどうかをチェックします。 インストールされていない場合は、対象のJDKをダウンロードするよう促されます。

新しいJavaのインスペクション

新しいJavaのインスペクション

私たちはIntelliJ IDEAの新バージョンをリリースするたびに静的コード解析機能を拡張しています。 それは今回のリリースも例外ではありません。 さまざまな改善を実施しているほか、新たに複数のコードインスペクションも追加しています。 これらのコードインスペクションでは、 SimpleDateFormat パターンの大文字のチェック、日付形式の大文字・小文字の使用状況の分析、その他の冗長するメソッド呼び出しの検索、文字列リテラル内の不要な文字エスケープ処理の報告と削除提案が示されます。

エディタ

LightEditモード

IntelliJ IDEA 2020.1には待ち望まれていたLightEditモードが実装されています。 プロジェクト全体の作成や読み込みを行うことなくテキストエディタで単独のファイルを素早く修正できるようになりました。 コマンドライン、IDEのWelcome(起動)画面、またはOS標準のファイルマネージャからファイルをこの軽量なエディタで開くことができます。 また、「Open File in Project」インテンション(Alt+Enter)を使えばLightEditモードから完全なプロジェクトモードに切り替えることができます。

LightEditの詳細

直接適用できるRenameとChange Signature

直接適用できるRenameとChange Signature

IntelliJ IDEA 2020.1ではJavaアプリやKotlinアプリを開発する際、メソッドやクラスのシグネチャを変更するために、わざわざモーダルダイアログを使用する必要はありません。 クラスやメソッドのパラメータを編集し、新しいガターアイコンをクリックするかAlt+Enterを押すだけで、変更内容を確認してクラス/メソッドの宣言とその使用箇所に適用できるようになりました。

直接適用できるRenameとChange Signatureの詳細

Javadocのエディタ内表示

エディタ内でJavadocを読む場合、特に参照リンクや画像が含まれている場合などはタグの山をかき分けて目を通さなければならないので非常に面倒です。 このため、Javadocをエディタ内に直接描画する手段を追加しました。 この機能は、Help | Find actions | Render documentation comments on file openingで有効化できます。

Javadocの表示に関する詳細

Code Vision

Code Versionの実装に向けて歩みだしました。コードバージョンに関する追加情報を取得しながら、コードに専念できるようになります。 IntelliJ IDEA 2020.1では、Code Versionを使ってJavaシンボルの使用状況と実装を示すことができます。 この機能を有効化するには、Preferences / Settings(環境設定/設定) | Editor(エディタ) | Inlay Hints(インレイ・ヒント) | Javaに移動し、Code Visionを選択してから関連するShow hints…(ヒントの表示...)チェックボックスをオンにしてください。

ナビゲーションバーの改善

ナビゲーションバーの改善

IntelliJ IDEA 2020.1ではプロジェクト内での移動を単純化するオプションがもう一つ追加されました。 ナビゲーションバーにJavaのクラスとインターフェースのメソッドが表示されるようになったため、スクロールすることなく直接ファイル内の必要な行にジャンプできるようになりました。 ナビゲーションバーをお使いでない方は、このタイミングでView | Appearance | Navigation Barをオンにすることをお勧めします。

Zenモード

Zenモード

新たにZenモードをエディタに導入しました。 このモードはIDE上の注意散漫のもとになる表示を排除し、ソースコードに専念できるようにします。 ZenモードはDistraction FreeモードとFull Screenモードを組み合わせたものですので、もうこれら両方を有効化する必要はありません。 メインメニューからView | Appearance | Enter Zen Modeを選択し、周りのことは忘れましょう。

スマートな文法チェッカー

スマートな文法・スペルチェッカー

IntelliJ IDEA 2020.1には総合的な文法・スペル・スタイルチェッカーであるGrazieプラグインがバンドルされています。 これにより、IDEがコードの構文以上のものをチェックできるようになりました。 また、明快な文字列リテラル、コメント、Javadoc、コミットメッセージなどを16の自然言語で書くのにも役立ちます。 デフォルトではテキストファイルのみがチェックされますが、Settings/Preferences | Editor | Proofread | GrammarでJavaファイルにも有効化することをお勧めします。

型定義のクイック表示

型定義のクイック表示

コードからフォーカスを外すことなく変数、フィールド、メソッド、その他のシンボルの型定義を調べることができます。 キャレットを必要なシンボルの位置に置き、メニューからView | Quick Type Definitionを選択してください。 すると、IntelliJ IDEAが情報をポップアップで表示します。そこからソースファイルを開いてコードを編集できます。

デバッガー

データフロー解析支援

データフロー解析支援

IntelliJ IDEA 2020.1のJVMデバッガにはデータフロー解析機能が追加されています。 この機能は、あるコードが実際に実行される前にその実行を予測します。 アプリケーションがブレークポイントで停止すると、IDEが最新のプログラム実行状態を元にデータフロー解析を実行して次に何が起こるかをチェックします。 デバッガでデータフロー解析支援を使用するには、Settings/Preferences | Build, Execution, Deployment | Debugger | Data Views | Javaで有効化してください。

Javaのデータフロー解析とデバッガの統合に関する詳細

上にピン留め

表示項目をピン留め

その他の改善点には、フィールドリストの上部にオブジェクトのフィールドを固定表示できる機能があります。 これは、あるオブジェクトのフィールドが多すぎて調査対象のフィールドを毎回探し出すのが面倒な場合に役立ちます。

プロファイラ

メソッドの呼び出しに注目

メソッド呼び出しにフォーカス Ultimate

IntelliJ IDEAのアプリケーションプロファイリング対応は進化し続けています。 このリリースでは、いくつかの新機能(Focus on Subtree、Focus on Call、Exclude SubtreeExclude Call)が追加されています。 これらのオプションを使うと、より明示的に選択したメソッドの呼び出しにフォーカスし、それ以外の不要なものを(プロファイル対象から)除外することができます。

再帰呼び出しの折りたたみ

再帰呼び出しの折りたたみ Ultimate

同じメソッドがスタック内の上位で呼び出された場合に、IntelliJ IDEAのプロファイラが再帰呼び出しを検出するようになりました。 IDEはこのような呼び出しをサブツリーから削除し、再帰呼び出しをバイパスできるようにします。このため、リソースの大部分を消費するメソッドとそれらによる呼び出しに注目することができます。 ProfilerツールウィンドウのCall Treeタブでは、再帰呼び出しにこの新しい専用のアイコンが付きます。

HProfスナップショットの初期サポート Ultimate

IntelliJ IDEA 2020.1はメモリリークを検出し、メモリ使用量を最適化する方法を発見するのに役立つ.hprofメモリダンプファイルを開くことができます。 例えば、合計サイズ、インスタンス数、ファイルのスタックトレースなどの基本的な情報を把握できます。 また、このファイルにはクラスごとにグループ化されたルートオブジェクト、インスタンス数やサイズで並べ替えられたすべてのクラスをリスト形式で表示され、フィールド値ビューアには全クラスのインスタンスが表示されます。 .hprof ファイルを開くにはHelp | Find actionに移動して “hprof” を入力し、Open Hprof Snapshotアクションを見つけてください。 この機能はまだ実装の初期段階にあり、今後のメジャーリリースで改善される予定です。

バージョン管理

 新しいコミットツールウィンドウ

新しいCommitツールウィンドウ

IntelliJ IDEA 2020.1では、VCSリポジトリに変更をコミットするためのUIを改修しています。モーダル形式のCommitダイアログではなく、専用のCommitツールウィンドウを利用できるようになりました。 このツールウィンドウでは変更済みファイルリストや差分用のエリアが広く確保されており、変更が準備できた時点でコミットに変更を加えたり、コミットメッセージを繰り返し作成したり、どの段階的な変更をどのコミットに入れるのかを選択したりできます。 この新しいUIは新規ユーザーにはデフォルトで有効化されていますが、既存ユーザーはPreferences/Settings(環境設定/設定) | Version Control(バージョン管理) | Commit(コミット)で切り替えることができます。

新しいInteractively Rebaseダイアログ

Interactively Rebase from Hereダイアログが改修され、対話性が大幅に向上しました。 もうブランチ内の各コミットに対して実行するアクションを選択できるだけではありません。 適用されているアクションを示すグラフを組み込み、コミットの詳細を表示し、必要に応じて差分の表示や変更のレビューまたはリセットを行うことができます。

IDEからGitをインストール

IDE から Git をインストール

IntelliJ IDEA 2020.1では、Gitを事前に手動でインストールする必要はなくなりました。 既存のGitリポジトリを複製する際、IDEが使用中のマシン上にあるGitの実行可能ファイルを探し、見つからない場合にはGitのダウンロードとセットアップを促します。

Branches(ブランチ操作) ポップアップ

  • Branches ポップアップに既存のリモートブランチとローカルブランチを検索できる見やすい検索フィールドが実装されました。
  • Refresh ボタンの実装を見直し、同ボタンを使って既存のリモートブランチを更新できるようになりました。
  • 受信 (青) と送信 (緑) のコミットインジケーターがステータスバーに追加されてます。
  • Log にブランチリストが実装されました。

外観

JetBrains Mono

JetBrains Mono

私たちはIntelliJ IDEAの効率性に大きな関心を寄せていますが、その外観や雰囲気にも大いに注力しています。 最近私たちが独自のフォントである JetBrains Mono の開発を完了したことはすでに多くの皆さんがご存じかと思います。 これまで多くの高評価をいただきましたので、このリリースでは JetBrains Mono を IntelliJ IDEA のデフォルトフォントにしました。

統一された IntelliJ Light テーマ

IntelliJ IDEA 2020.1では、各種オペレーティングシステムで統一された新しいデフォルトのライトテーマを導入しました。 IntelliJ Lightを紹介します! 旧テーマにはいつでも View | Quick Switch Scheme | Theme で戻せますが、IntelliJ Lightをぜひお試しいただきたいと思います。

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

Spring WebFlux Ultimate

これまで私たちが開発者のトレンドに追従し、最も人気のあるテクノロジーに対応するよう努力してきたように、バージョン2020.1では Spring WebFlux フレームワークへの対応を強化しました。 今回新たにリクエストマッピングを追加しました。そのため、WebFlix アプリケーションで Actuator が有効化されている場合は Run ツールウィンドウでマッピングにアクセスしてアプリケーションの監視や操作を行うことができます。 また、IDE が Rendering API とも適切に連携するようになったため、コードの自動補完と関連ビューへの移動を利用できるようになりました。 さらに、Find UsagesAlt+F7)や Rename リファクタリング(Shift+F6)などのコードインサイト機能をフルに活かせるようになりました。

Spring WebFlux 向けのその他の改善

Spring プロファイル Ultimate

旧バージョンの IntelliJ IDEA では Spring profile 式を文字列として処理していました。 バージョン2020.1以降の IDE は式内の別々のプロファイルを区別し、Find UsagesAlt+F7)や Rename リファクタリング(Shift+F6)などのスマートなアクションをそれらに対して適用できるようになりました。 また、Change Active Spring Profiles ポップアップのユーザービリティを強化し、既存プロファイルの補完機能を実装しました。

Selenium

Selenium Ultimate

IntelliJ IDEA 2020.1 Ultimate は新しい Selenium UI Automation Testing プラグインを介し、人気のウェブアプリケーションテスト用フレームワークであるSelenium向けにIDE基本機能のサポートを開始しました。 この新しいプラグインでは、一般的なUIテスト用 JVM フレームワークとレポート生成用ライブラリ(Selenium、Selenide、Geb、Serenity BDD、Allure Framework)をサポートしています。

 

IntelliJ IDEA の Selenium 向け機能強化の対象には、新しいプロジェクトウィザード、ハイライト、インスペクション、Java/Kotlin/Groovy 言語用のテストコード補完、各種構成ファイルの検証機能、ナビゲーションを容易にするガター用アイコンが含まれます。

IntelliJ IDEA での Selenium サポートに関する詳細

JMS および Spring Messaging API Ultimate

IntelliJ IDEA 2020.1には、JavaアプリケーションとKotlinアプリケーションの両方に使用できるJMSおよびSpring Messaging API対応のコードインサイト機能一式が付属しています。 この中にはコード補完、ナビゲーション、Rename リファクタリング(Shift + F7)参照の注入(Alt + Enter)などが含まれています。

Micronaut Ultimate

前バージョンの IntelliJ IDEA では Micronaut フレームワークのサポートが追加されました。 新バージョンではこのサポートを拡張し、構成ファイル内パラメータの自動補完のほか、ナビゲーションとクイックドキュメントを追加しています。 また、基本的なデータ型を自動補完し、値が無効かどうかを検出します。 さらに、IntelliJ IDEAがMicronaut URLマッピングに注入された正規表現フラグメントを認識するようになったため、構文の可読性が向上しました。

RxJava Ultimate

IntelliJ IDEA 2020.1では多数の便利なインスペクションが追加され、RxJavaのサポートが強化されています。 IDEが未使用の publisher を検出するようになりました。また、ラムダ式がnullを返すタイミングを把握できるようになりました。 加えて、スレッドをブロックしているメソッド呼び出しと長すぎるフィルタチェーンをハイライトします。

QuarkusおよびMicroProfile用のプロジェクト生成

Quarkus および MicroProfile Ultimate

IntelliJ IDEA 2020.1からは、初期構成をガイドする New Project ウィザードで直接 Quarkus と MicroProfile のプロジェクトを新規作成できるようになりました。

サードパーティSQLライブラリ対応の言語注入

サードパーティSQLライブラリ対応の注入 Ultimate

IDEが以前は通常の文字列として処理されていた一般的なサードパーティライブラリのSQLフラグメントを自動的に注入し、SQLのステートメントとフィールドに対応したコード補完とナビゲーションを提供するようになりました。 サポート対象のライブラリには、R2DBC、Vert.x SQL Client、Apache Spark SQL、Apache DB Utilsなどがあります。

Swagger Codegen

Swagger Codegen Ultimate

IntelliJ IDEA 2020.1には強力なサーバースタブ生成ツールである Swagger Codegen、API クライアント、および幅広いプログラミング言語をサポートするドキュメントが統合されています。 ファイルの生成パス、.mustache テンプレートフォルダのパス、言語、互換性の問題に対応するための異なるJREなどを設定できる専用の実行構成を用意しました。 Swagger Codegenを機能させるには、OpenAPI/Swaggerファイルを開いて設定を指定し、いくつかのオプションを構成してからRunをクリックするだけです。

リモート仕様 Ultimate

IntelliJ IDEA 2020.1は OpenAPI/Swagger の各仕様の扱い方を理解しています。 例えば、これらの仕様に対する自動補完を行います。 設定に仕様のURLを入力するだけで、IDEが入力時にURLパスを補完します。 File | New | OpenAPI Specificationを使用し、普段クラスやインターフェースを作成するのと同じ方法で独自の仕様を作成することもできます。

HTTPクライアント

自動補完の改善など Ultimate

IntelliJ IDEA 2020.1ではHTTPクライアントがよりスマートになりました。 パス変数とURLパスを正しく自動補完できるようになり、HTTPリクエストファイルから直接関連するエンドポイントに移動できるようになりました。 また、MicronautとSpringユーザー向けの更新もあります。リクエスト・ハンドラメソッドにURLマッピング用のガターアイコンが実装されました。 このアイコンを使って既存のHTTPリクエストファイルを開いたり、HTTPクライアントに移動することができます。

Docker

Dockerのプルワークフローを容易化

Dockerのプルワークフローを容易化

Dockerレジストリからさらにイメージをプルしやすくするため、UIを改修してモーダルダイアログを撤廃しました。 このバージョンからは Service ツールウィンドウの左ペインにある Images ノードをクリックするだけで、IntelliJ IDEA が右ペインにイメージを簡単にプルできる Images Console タブを開くようになります。 また、イメージに対応した補完も行われます。

Kubernetes

Kubernetesファイル用のApplyコマンド

Kubernetesファイル用の「Apply」コマンド Ultimate

エディタのガターから「Apply」コマンドを起動し、ローカルファイルで定義された状態に一致するKubernetesクラスターを更新できるようになりました。

DockerとKubernetesの改善点に関する詳細

ビルドツール

MavenとGradleのインポートを改善

Maven と Gradle のインポートを改善

IntelliJ IDEA 2020.1ではMaven ユーザーと Gradle ユーザー向けに小規模ながらも重要な更新が行われています。 古い自動インポートの代わりに、エディタの右上にフローティング通知が実装されました。 この通知か新しいショートカット(WindowsとLinuxの場合はCtrl+Shift+O / Macの場合はShift+Cmd+I)を使用すると、ビルドファイルを修正した後に変更を読み込むことができます。 この動作がさらに改善され、IntelliJ IDEAが外部で行われたビルドファイルの変更を検出した際、関連するプロジェクトを自動的に再読み込みするようになりました。

Scala

Scala 3対応

Scala 3対応

Dotty が Scale 3 になることに決まった今、私たちは本格的な Scala 3 対応に着手しました。 Scala プラグインは現時点で Scala 3 とその新しい構文を暫定的にサポートしており、エラーハイライト、ナビゲーション、型情報、およびその他多くの基本的なIDEの機能を提供しています。

言語自体の変更、および、言語に対するサポートは、作業継続中ですので、新機能とバグ修正を早急に手に入れたい場合はプラグインのナイトリービルドを使用することをお勧めします。

IntelliJ IDEA での Scale 3 サポートに関する詳細

関数リテラルに対応したきめ細やかなエラーハイライト

関数リテラルに対応したきめ細やかなエラーハイライト

Scalaでは関数リテラルが多く使用されています。 これらの関数リテラルはメソッドに酷似しており、独立したパラメータと本文を持っています。 しかし、関数型の単一の式として処理されることが多いため、エラーの特定や解釈が難しくなる原因となっています。

このリリースでは関数リテラルに対応したきめ細やかなエラーハイライトを導入しました。これにより、関数型を含むあいまいなメッセージの代わりに明確かつ精度の高いメッセージを元にエラーを正確に特定することができます。

Unused Parameter インスペクション

Unused Parameter インスペクション

Scalaプラグインが長期間使用されていない変数やメソッドを表示できるようになりました。 また、未使用パラメータを特定できるようになりました。 メソッドまたはクラスの中から参照されていないパラメータは灰色でハイライトされます。

変数やメソッドとは異なり、未使用のパラメータは往々にしてプログラムミスの産物です。 つまり、この新しいインスペクションはコードをクリーンにするだけでなく、さまざまなミスを防ぐのにも役立ちます。

Smart Step Into(スマートステップイン)

Smart Step Into(スマートステップイン)

Scala では、同じ行に複数のメソッド呼び出しが存在することが多々あります。 このような場合、デバッガで Step Into を使用してもほぼ役に立ちません。目的のメソッドに到達するまで多くのメソッドに手動でステップインやステップアウトを行う必要があります。

このリリースでは、Step Into が Smart Step Into になりました。 必要なメソッドを選択すれば、あとはIDEに処理を任せることができます。

BSP サポートの改善

BSPのサポートを改善しました。 よりスムーズに動作するようになり、さらに多くのプロジェクトやビルドツールを扱えるようになりました。 もう手動で Bloop をインストールし、BSP 経由で sbt プロジェクトをインポートする必要はありません。Scala プロジェクトを使えば、このようなプロジェクトを自動的に Bloop 形式に変換できます。 Build ツールウィンドウから BSP のビルドをキャンセルできるようになりました。 さらに、BSP ウィジェットを使用して BSP 接続の表示や管理を行うことができます。

JavaScript

新しいスマートインテンションと分析

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

新しいスマートインテンションとインスペクション(Alt+Enter)を活用すれば、コーディング作業中に時間を節約できます。 例えば、JavaScript と TypeScript の最新バージョンに導入された構文である、オプションの chaining および / または nullish coalescing (null合体演算子) に既存のコードを素早く変換することができます。

Vuex と Composition API のサポート

Vuex および Composition API のサポート Ultimate

Vuex ライブラリを対象に用意されているサポートや Vue 3 の Composition API を使用すれば、Vue.js の素晴らしいアプリケーションをよりスムーズに構築できます。

IntelliJ IDEA 2020.1で使用可能な JavaScript に関するその他の改善点については、WebStorm の新機能をご覧ください。

データベース関連の改善

データベース関連の改善

データベース関連の改善 Ultimate

データベース関連の改善には、Excel(.xlsx)ファイルへのエクスポート機能、エディタでデータをテキスト形式で表示する機能、実行構成の作成機能その他が含まれています。

IntelliJ IDEA 2020.1で使用可能なデータベースに関するすべての改善点については、DataGripの新機能をチェックしてください。

ターミナル

ターミナルセッションの分割

ターミナルセッションを分割

ターミナルセッションを上下または左右に分割し、並べて実行できる機能を追加しました。 分割ターミナルセッションを作成したり、ナビゲートしたり、閉じたりするには、ターミナルからコンテキストメニューを呼び出すことができます。

Run configurations(実行構成)

実行構成をファイルに保存

バージョン2020.1より、バージョン管理を通じてチーム・メンバーと実行構成を共有できるように、プロジェクト・フォルダ内の任意の場所を保存場所として選択できるようになりました。 そのためには、Run/Debug Configurations ダイアログを開き、ダイアログ右上の Store as project file をチェックしてから歯車アイコンをクリックしてください。 すると、実行構成を保存する場所を選択できるポップアップが開きます。

Android

Android Volley対応

Android Volley 対応

IntelliJ IDEA 2020.1 は Android Volley ライブラリをサポートしています。 URL パスの参照を自動補完し、関連リソースに移動できるようにしています。

その他

  • IntelliJベースの各種IDEは、JetBrains Runtime 8(JBR8)からJetBrains Runtime 11(JBR11)に完全移行しました。
  • IDEの設定はメジャーバージョン間で自動的にインポートされるようになりました。
  • IDEの構成ファイルへのパスが変更されました。
  • Find/Replace(検索/置換)とFind in Path(パスで検索)ダイアログが更新されました。
  • SSHサブシステムと構成UIが統合されました。