IntelliJ IDEA 2020.1はJava 14とその新機能に対応しています。 Recordsのコードインサイトに完全に対応しているほか、新しいRecordクラスの作成とそのコンストラクタ・コンポーネントの生成を素早く行うことができ、既存のエラーについて警告します。 また、instanceof
演算子のパターンマッチングにも対応しています。この対応には新しいインスペクションのほか、長たらしい instanceof とキャストを組み合わせた表現を新しい簡潔なパターン変数に置き換えて単純化するクイックフィックスも含まれています。
もう必要なJDKをウェブで検索する必要はありません。 IntelliJ IDEA 2020.1からはプロジェクトを作成・構成中にIDEから直接JDKのビルドをダウンロードし、セットアップできるようになりました。 ダウンロードしたプロジェクトを開くと、IDEがそのプロジェクトに構成されたJDKがお使いのコンピューターにインストールされているかどうかをチェックします。 インストールされていない場合は、対象のJDKをダウンロードするよう促されます。
私たちはIntelliJ IDEAの新バージョンをリリースするたびに静的コード解析機能を拡張しています。 それは今回のリリースも例外ではありません。 さまざまな改善を実施しているほか、新たに複数のコードインスペクションも追加しています。 これらのコードインスペクションでは、 SimpleDateFormat
パターンの大文字のチェック、日付形式の大文字・小文字の使用状況の分析、その他の冗長するメソッド呼び出しの検索、文字列リテラル内の不要な文字エスケープ処理の報告と削除提案が示されます。
IntelliJ IDEA 2020.1には待ち望まれていたLightEditモードが実装されています。 プロジェクト全体の作成や読み込みを行うことなくテキストエディタで単独のファイルを素早く修正できるようになりました。 コマンドライン、IDEのWelcome(起動)画面、またはOS標準のファイルマネージャからファイルをこの軽量なエディタで開くことができます。 また、「Open File in Project」インテンション(Alt+Enter)を使えばLightEditモードから完全なプロジェクトモードに切り替えることができます。
IntelliJ IDEA 2020.1ではJavaアプリやKotlinアプリを開発する際、メソッドやクラスのシグネチャを変更するために、わざわざモーダルダイアログを使用する必要はありません。 クラスやメソッドのパラメータを編集し、新しいガターアイコンをクリックするかAlt+Enterを押すだけで、変更内容を確認してクラス/メソッドの宣言とその使用箇所に適用できるようになりました。
エディタ内でJavadocを読む場合、特に参照リンクや画像が含まれている場合などはタグの山をかき分けて目を通さなければならないので非常に面倒です。 このため、Javadocをエディタ内に直接描画する手段を追加しました。 この機能は、Help | Find actions | Render documentation comments on file opening
で有効化できます。
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モードをエディタに導入しました。 このモードは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
で有効化してください。
その他の改善点には、フィールドリストの上部にオブジェクトのフィールドを固定表示できる機能があります。 これは、あるオブジェクトのフィールドが多すぎて調査対象のフィールドを毎回探し出すのが面倒な場合に役立ちます。
IntelliJ IDEAのアプリケーションプロファイリング対応は進化し続けています。 このリリースでは、いくつかの新機能(Focus on Subtree、Focus on Call、Exclude Subtree、Exclude Call)が追加されています。 これらのオプションを使うと、より明示的に選択したメソッドの呼び出しにフォーカスし、それ以外の不要なものを(プロファイル対象から)除外することができます。
同じメソッドがスタック内の上位で呼び出された場合に、IntelliJ IDEAのプロファイラが再帰呼び出しを検出するようになりました。 IDEはこのような呼び出しをサブツリーから削除し、再帰呼び出しをバイパスできるようにします。このため、リソースの大部分を消費するメソッドとそれらによる呼び出しに注目することができます。 ProfilerツールウィンドウのCall Treeタブでは、再帰呼び出しにこの新しい専用のアイコンが付きます。
IntelliJ IDEA 2020.1はメモリリークを検出し、メモリ使用量を最適化する方法を発見するのに役立つ.hprofメモリダンプファイルを開くことができます。 例えば、合計サイズ、インスタンス数、ファイルのスタックトレースなどの基本的な情報を把握できます。 また、このファイルにはクラスごとにグループ化されたルートオブジェクト、インスタンス数やサイズで並べ替えられたすべてのクラスをリスト形式で表示され、フィールド値ビューアには全クラスのインスタンスが表示されます。 .hprof ファイルを開くにはHelp | Find action
に移動して “hprof” を入力し、Open Hprof Snapshotアクションを見つけてください。 この機能はまだ実装の初期段階にあり、今後のメジャーリリースで改善される予定です。
IntelliJ IDEA 2020.1では、VCSリポジトリに変更をコミットするためのUIを改修しています。モーダル形式のCommitダイアログではなく、専用のCommitツールウィンドウを利用できるようになりました。 このツールウィンドウでは変更済みファイルリストや差分用のエリアが広く確保されており、変更が準備できた時点でコミットに変更を加えたり、コミットメッセージを繰り返し作成したり、どの段階的な変更をどのコミットに入れるのかを選択したりできます。 この新しいUIは新規ユーザーにはデフォルトで有効化されていますが、既存ユーザーはPreferences/Settings(環境設定/設定) | Version Control(バージョン管理) | Commit(コミット)
で切り替えることができます。
Interactively Rebase from Hereダイアログが改修され、対話性が大幅に向上しました。 もうブランチ内の各コミットに対して実行するアクションを選択できるだけではありません。 適用されているアクションを示すグラフを組み込み、コミットの詳細を表示し、必要に応じて差分の表示や変更のレビューまたはリセットを行うことができます。
IntelliJ IDEA 2020.1では、Gitを事前に手動でインストールする必要はなくなりました。 既存のGitリポジトリを複製する際、IDEが使用中のマシン上にあるGitの実行可能ファイルを探し、見つからない場合にはGitのダウンロードとセットアップを促します。
私たちはIntelliJ IDEAの効率性に大きな関心を寄せていますが、その外観や雰囲気にも大いに注力しています。 最近私たちが独自のフォントである JetBrains Mono の開発を完了したことはすでに多くの皆さんがご存じかと思います。 これまで多くの高評価をいただきましたので、このリリースでは JetBrains Mono を IntelliJ IDEA のデフォルトフォントにしました。
IntelliJ IDEA 2020.1では、各種オペレーティングシステムで統一された新しいデフォルトのライトテーマを導入しました。 IntelliJ Lightを紹介します! 旧テーマにはいつでも View | Quick Switch Scheme | Theme
で戻せますが、IntelliJ Lightをぜひお試しいただきたいと思います。
これまで私たちが開発者のトレンドに追従し、最も人気のあるテクノロジーに対応するよう努力してきたように、バージョン2020.1では Spring WebFlux フレームワークへの対応を強化しました。 今回新たにリクエストマッピングを追加しました。そのため、WebFlix アプリケーションで Actuator が有効化されている場合は Run ツールウィンドウでマッピングにアクセスしてアプリケーションの監視や操作を行うことができます。 また、IDE が Rendering API とも適切に連携するようになったため、コードの自動補完と関連ビューへの移動を利用できるようになりました。 さらに、Find Usages(Alt+F7)や Rename リファクタリング(Shift+F6)などのコードインサイト機能をフルに活かせるようになりました。
旧バージョンの IntelliJ IDEA では Spring profile 式を文字列として処理していました。 バージョン2020.1以降の IDE は式内の別々のプロファイルを区別し、Find Usages(Alt+F7)や Rename リファクタリング(Shift+F6)などのスマートなアクションをそれらに対して適用できるようになりました。 また、Change Active Spring Profiles ポップアップのユーザービリティを強化し、既存プロファイルの補完機能を実装しました。
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 2020.1には、JavaアプリケーションとKotlinアプリケーションの両方に使用できるJMSおよびSpring Messaging API対応のコードインサイト機能一式が付属しています。 この中にはコード補完、ナビゲーション、Rename リファクタリング(Shift + F7)参照の注入(Alt + Enter)などが含まれています。
前バージョンの IntelliJ IDEA では Micronaut フレームワークのサポートが追加されました。 新バージョンではこのサポートを拡張し、構成ファイル内パラメータの自動補完のほか、ナビゲーションとクイックドキュメントを追加しています。 また、基本的なデータ型を自動補完し、値が無効かどうかを検出します。 さらに、IntelliJ IDEAがMicronaut URLマッピングに注入された正規表現フラグメントを認識するようになったため、構文の可読性が向上しました。
IntelliJ IDEA 2020.1では多数の便利なインスペクションが追加され、RxJavaのサポートが強化されています。 IDEが未使用の publisher を検出するようになりました。また、ラムダ式がnullを返すタイミングを把握できるようになりました。 加えて、スレッドをブロックしているメソッド呼び出しと長すぎるフィルタチェーンをハイライトします。
IntelliJ IDEA 2020.1からは、初期構成をガイドする New Project ウィザードで直接 Quarkus と MicroProfile のプロジェクトを新規作成できるようになりました。
IDEが以前は通常の文字列として処理されていた一般的なサードパーティライブラリのSQLフラグメントを自動的に注入し、SQLのステートメントとフィールドに対応したコード補完とナビゲーションを提供するようになりました。 サポート対象のライブラリには、R2DBC、Vert.x SQL Client、Apache Spark SQL、Apache DB Utilsなどがあります。
IntelliJ IDEA 2020.1には強力なサーバースタブ生成ツールである Swagger Codegen、API クライアント、および幅広いプログラミング言語をサポートするドキュメントが統合されています。 ファイルの生成パス、.mustache テンプレートフォルダのパス、言語、互換性の問題に対応するための異なるJREなどを設定できる専用の実行構成を用意しました。 Swagger Codegenを機能させるには、OpenAPI/Swaggerファイルを開いて設定を指定し、いくつかのオプションを構成してからRunをクリックするだけです。
IntelliJ IDEA 2020.1は OpenAPI/Swagger の各仕様の扱い方を理解しています。 例えば、これらの仕様に対する自動補完を行います。 設定に仕様のURLを入力するだけで、IDEが入力時にURLパスを補完します。 File | New | OpenAPI Specification
を使用し、普段クラスやインターフェースを作成するのと同じ方法で独自の仕様を作成することもできます。
IntelliJ IDEA 2020.1ではHTTPクライアントがよりスマートになりました。 パス変数とURLパスを正しく自動補完できるようになり、HTTPリクエストファイルから直接関連するエンドポイントに移動できるようになりました。 また、MicronautとSpringユーザー向けの更新もあります。リクエスト・ハンドラメソッドにURLマッピング用のガターアイコンが実装されました。 このアイコンを使って既存のHTTPリクエストファイルを開いたり、HTTPクライアントに移動することができます。
Dockerレジストリからさらにイメージをプルしやすくするため、UIを改修してモーダルダイアログを撤廃しました。 このバージョンからは Service ツールウィンドウの左ペインにある Images ノードをクリックするだけで、IntelliJ IDEA が右ペインにイメージを簡単にプルできる Images Console タブを開くようになります。 また、イメージに対応した補完も行われます。
エディタのガターから「Apply」コマンドを起動し、ローカルファイルで定義された状態に一致するKubernetesクラスターを更新できるようになりました。
IntelliJ IDEA 2020.1ではMaven ユーザーと Gradle ユーザー向けに小規模ながらも重要な更新が行われています。 古い自動インポートの代わりに、エディタの右上にフローティング通知が実装されました。 この通知か新しいショートカット(WindowsとLinuxの場合はCtrl+Shift+O / Macの場合はShift+Cmd+I)を使用すると、ビルドファイルを修正した後に変更を読み込むことができます。 この動作がさらに改善され、IntelliJ IDEAが外部で行われたビルドファイルの変更を検出した際、関連するプロジェクトを自動的に再読み込みするようになりました。
Dotty が Scale 3 になることに決まった今、私たちは本格的な Scala 3 対応に着手しました。 Scala プラグインは現時点で Scala 3 とその新しい構文を暫定的にサポートしており、エラーハイライト、ナビゲーション、型情報、およびその他多くの基本的なIDEの機能を提供しています。
言語自体の変更、および、言語に対するサポートは、作業継続中ですので、新機能とバグ修正を早急に手に入れたい場合はプラグインのナイトリービルドを使用することをお勧めします。
Scalaでは関数リテラルが多く使用されています。 これらの関数リテラルはメソッドに酷似しており、独立したパラメータと本文を持っています。 しかし、関数型の単一の式として処理されることが多いため、エラーの特定や解釈が難しくなる原因となっています。
このリリースでは関数リテラルに対応したきめ細やかなエラーハイライトを導入しました。これにより、関数型を含むあいまいなメッセージの代わりに明確かつ精度の高いメッセージを元にエラーを正確に特定することができます。
Scalaプラグインが長期間使用されていない変数やメソッドを表示できるようになりました。 また、未使用パラメータを特定できるようになりました。 メソッドまたはクラスの中から参照されていないパラメータは灰色でハイライトされます。
変数やメソッドとは異なり、未使用のパラメータは往々にしてプログラムミスの産物です。 つまり、この新しいインスペクションはコードをクリーンにするだけでなく、さまざまなミスを防ぐのにも役立ちます。
Scala では、同じ行に複数のメソッド呼び出しが存在することが多々あります。 このような場合、デバッガで Step Into を使用してもほぼ役に立ちません。目的のメソッドに到達するまで多くのメソッドに手動でステップインやステップアウトを行う必要があります。
このリリースでは、Step Into が Smart Step Into になりました。 必要なメソッドを選択すれば、あとはIDEに処理を任せることができます。
新しいスマートインテンションとインスペクション(Alt+Enter)を活用すれば、コーディング作業中に時間を節約できます。 例えば、JavaScript と TypeScript の最新バージョンに導入された構文である、オプションの chaining および / または nullish coalescing (null合体演算子) に既存のコードを素早く変換することができます。
Vuex ライブラリを対象に用意されているサポートや Vue 3 の Composition API を使用すれば、Vue.js の素晴らしいアプリケーションをよりスムーズに構築できます。
IntelliJ IDEA 2020.1で使用可能な JavaScript に関するその他の改善点については、WebStorm の新機能をご覧ください。
データベース関連の改善には、Excel(.xlsx)ファイルへのエクスポート機能、エディタでデータをテキスト形式で表示する機能、実行構成の作成機能その他が含まれています。
IntelliJ IDEA 2020.1で使用可能なデータベースに関するすべての改善点については、DataGripの新機能をチェックしてください。
ターミナルセッションを上下または左右に分割し、並べて実行できる機能を追加しました。 分割ターミナルセッションを作成したり、ナビゲートしたり、閉じたりするには、ターミナルからコンテキストメニューを呼び出すことができます。
IntelliJ IDEA 2020.1 は Android Volley ライブラリをサポートしています。 URL パスの参照を自動補完し、関連リソースに移動できるようにしています。