JetBrainsはIntelliJ IDEA 2022.1をリリースした。依存関係アナライザが導入されており、コードベースを分析・改善できるようになっている。使いやすさと生産性の向上のために、インレイヒントが提供され、Markdownファイルからコマンド実行できるようになり、デバッグとプロファイリングが改善されている。
この新しい依存関係アナライザ機能により、プロジェクトの依存関係に関する分析が得られる。依存関係分析など、さまざまな新しいアクションを使用できる。
依存関係分析アクションを使って、開発者はMavenの推移的な依存関係の深さに対して含めるファイルを選択することで、分析範囲を指定できる。
分析結果が表示され、そこにはJava自体のString
やSpring FrameworkのRestController
などのさまざまなライブラリクラスに対するCarController
クラスの依存関係が含まれる。ライブラリとは別に、CarController
クラスは本番稼働用のクラスCarService
にも依存している。
右側でCarService
などのクラスを選択すると、左側で選択したCarController
クラス内に、そのクラスの使用法が表示される。この概要は設定可能で、たとえば、[読み取りアクセスの表示]や[書き込みアクセスの表示]を選択する。
循環依存分析アクションでは、たとえばパッケージ内のクラス間の循環を自動的に検出する。この例では、com.example.utils
パッケージのUtils
に依存するcom.example.demo
パッケージのCarService
クラスを示している。
逆に、com.example.utils
パッケージのUtils
は、com.example.demo
パッケージのDemoApplication
クラスに依存する。
通知ツールウィンドウはイベントログに置き換わり、改善の提案と完了したアクションを表示する。
JetBrainsは新しいプロジェクトウィザードを改善した。それにより、新しいプロジェクトの作成を簡単にできるようになり、Maven Archetypeの使用をより適切にサポートできるようになった。
インレイヒント、継承、使用法、コード作成者、そして関連する問題が改善された。また、それがデフォルトで有効になり、コード内でクリックすることで情報を提供できるようになった。
構造検索と置換(SSR)のためのUIとテンプレートの参照機能が再設計された。SSRでは、文法構造のコードパターンを検索するときにコードの構造が考慮される。そして、Edit | Find | Search Structurally あるいはReplace Structurallyから使うことができる。
IntelliJ IDEA Ultimateでは、脆弱なMavenとGradleの依存関係を検出し、改善を提案できるようになった。この機能は、Checkmarxソフトウェア構成分析を使用するパッケージチェッカープラグインを介して利用できる。
Markdownのサポートが改善された。特に、Markdownファイルで緑色の矢印アイコンによりコマンドを直接実行できるようになった。
Java18でリリースされた新機能がサポートされるようになった。例えば、JEP 413、Java APIドキュメントのコードスニペット、JEP 420、switchのためのパターンマッチング(セカンドプレビュー)などである。
新たなSurround with try/catchテンプレートにより、RuntimeException
にラップされた例外を再スローできるようになった。JavaデコンパイラーはJava 17互換であり、JUnit 5アノテーションの@EnabledIf
、@DisabledIf
、@NullSource
、@EmptySource
、@TempDir
がサポートされるようになった。
Kotlinについては、Kotlin 1.6.20がサポートされるようになった。そのバージョンではパフォーマンスとデバッガーが改善され、Koverプラグインによりコードカバレッジを提供できるようになった。
IntelliJ IDEA Ultimateのプロファイラは、非同期プロファイラーとJavaフライトレコーダーを組み合わせたものになった。
IntelliJ IDEA 2022.1におけるすべての変更の概要は、JetBrains Webサイトの「新着情報」セクションから得られる。