IntelliJ IDEA 2022.1 では、依存関係の管理と競合の解決を支援する依存関係アナライザー、新規プロジェクトの起動を楽にする New Project(新規プロジェクト)ウィザード、新しい合理化された方法で IDE から通知を受信できる Notifications(通知)ツールウィンドウが導入されています。 また、その他の重要な改善も多数含まれており、以下ではその詳細を説明しています。
新たに導入された Dependency Analyzer(依存関係アナライザー)では、プロジェクトとサブプロジェクトで使用されているすべての Maven と Gradle の依存関係に関する詳細な情報を確認できます。 競合している依存関係の検出と解決、同一依存関係のフィルタリング、異なるライブラリでの有無の確認を支援するほか、これら依存関係の間を簡単に移動してビルド構成を修正できるようにします。
New Project(新規プロジェクト)ウィザードのインターフェースを改良し、新規プロジェクトの作成を合理化しました。 空のプロジェクトを素早く起動したり、Java、Kotlin、Groovy、および JavaSciprt 向けの事前構成済みオプションを使用したりできます。より複雑なプロジェクトがある場合は、ジェネレーターを使用できます。
Event Log(イベントログ)インスタンスを新しい Notifications(通知)ツールウィンドウに入れ替えました。 重要で有用な提案と通知がより明確にハイライトされ、専用のツールウィンドウに整理されます。 詳細は、こちらのブログ記事をご覧ください。
New Project(新規プロジェクト)ウィザードの Maven Archetype プロジェクトジェネレーターを更新して、Archetype を参照する際に入力しながら検索できる機能、モジュール作成中に Archetype カタログを管理する機能、および Archetype で必要なプロパティを入力する機能を導入しました。
Code Vision インレイヒントを改善し、エディターで直接コードに関するインサイトを即座に確認できるようになりました。 表示されるメトリクスのリストには、 継承、使用箇所、コード作成者、および関連する問題が含まれます。 また、メトリクスはすべてデフォルトで有効になっています。これはインレイヒントの設定で変更可能です。 これらの設定も更新され、構成 UI が新しくなっています。
エディター内の作業スペースをすべて同じ幅のタブに分散できるようになりました。 この設定を行うには、Settings(設定)/ Preferences(環境設定)| Advanced Settings(高度な設定)| Editor Tabs(エディタータブ)| Equalize proportions in nested splits(ネストした分割の比率を揃える)に移動します。
UML ダイアグラムを yEd の .graphml、JGraph の .drawio、Graphviz の .dot、Graphviz の位置情報付きの .dot、Mermaid の .md、Plantuml、および IntelliJ IDEA の .uml ファイルとしてエクスポートすることが可能になり、サードパーティツールとの互換性が確保されました。
Structural Search and Replace(構造検索&置換)ダイアログに全テンプレートのリスト表示が備わり、テンプレート間をより簡単に移動できるようになりました。 また、ダイアログに Pin Dialog(ダイアログのピン留め)アイコンを追加したほか、Injected code(注入されたコード)と Match case(大/小文字を区別する)チェックボックスの位置が変更されました。
IntelliJ IDEA 2022.1 can now detect vulnerabilities in Maven and Gradle dependencies used in your projects by checking across the Checkmarx SCA Database and the National Vulnerability Database, thanks to the Package Сhecker plugin that is bundled with IntelliJ IDEA Ultimate.
詳細については、このブログ記事を参照してください。
実行コマンドを含む命令が記述された Markdown ファイルを扱う場合は、ガターの実行アイコンを使用してこのようなコマンドをファイルから直接実行できます。
Markdown ブロックの新しい Copy code snippet(コードスニペットをコピー)機能を使用すると、ワンクリックで内容をクリップボードにさっとコピーできます。
デザインが一新された Markdown エディターのフローティングツールバーには、リスト作成機能とヘッダーのスタイルを選択できるドロップダウンメニューが追加されています。 カスタマイズ可能であるため、必要なオプションだけを配置しておけます。
LightEdit モードを強化し、専用のプロジェクトを作成したり開いたりせずに、さらに多くの作業を実行できるようにしました。 プロジェクトを使用しないモードで、コードを整形できるようになっています。
Incorrect formatting(不適切な書式)インスペクションを実装しました。このインスペクションはファイルの現在の書式がコードスタイルの設定に一致しないことを通知します。
コード内の書式に一貫性を持たせるため、Add a space at line comment start(行コメントの先頭に空白を追加する)オプションに Enforce on reformat(整形時に強制する)チェックボックスを追加しました。このチェックボックスは自動的にオンになっています。 Java、Kotlin、および Groovy ではデフォルトで使用できるようになっており、英数字で開始する行コメントのみを変更します。
コマンドラインフォーマッターがプロジェクトファイルを検証する dry run モードをサポートしました。 ファイルを整形する必要がある場合はゼロ以外のステータスで終了します。
IntelliJ IDEA 2022.1 は 2022 年 3 月にリリースされた Java 18 の新機能をサポートしています。 IDE がコードスニペット、Switch 式のパターンマッチングへの変更など、さまざまな機能をサポートするようになりました。 詳細は、こちらのブログ記事をご覧ください。
Java デコンパイラーと Java 17 リリースとの互換性がさらに向上しました。 sealed 型やパターンマッチングなどの最新の言語コンストラクターをサポートしており、文字列のデコンパイルに対する switch の改善、型アノテーションの提供、および共通定数の検出機能が備わっています。
@EnabledIf/DisabledIf
、@NullSource/EmptySource
、@TempDir
アノテーションのサポートなど、JUnit 5.7 で導入された新機能のサポートを追加しました。
Surround with try/catch(try/chatch で囲む)テンプレートが更新され、例外を単にキャッチするのではなく、RuntimeException にラップしてスローし直すようになりました。
IntelliJ IDEA 2022.1 では Kotlin 1.6.20 がサポートされているため、並列コンパイル、コンテキストレシーバーのプロトタイプ、すべての Kotlin ターゲット間でのコード共有の改善といった最新の言語機能を IDE で使用できるようになりました。 新しい Kotlin の最新情報については、こちらのブログ記事をご覧ください。
パッケージインデックスを最適化することで、IDE でコード補完、ハイライト、および参照検索関連の操作を行う際の動作速度が大幅にアップしました。 また、コード変更後に発生するインデックスの再作成の数と範囲が縮小されています。
Kotlin プロジェクトをデバッグする際の Smart Step Into(スマートステップイン)機能に複数の有用な改善と更新を行いました。 また、ブレークポイントに関する多数の問題も解決されています。
To ensure better Kotlin code coverage, the Kover plugin has been integrated with IntelliJ IDEA.
Groovy のコード補完で、arg
、cast
、for
、iter
、nn
、notnull
、null
、not
、throw
、try
、var
、par
、sout
、serr
、while
、new
、reqnonnull
、return
といった Java と同様の後置テンプレートがサポートされました。
IntelliJ IDEA Ultimate が URL パス参照、エンドポイント、Search Everywhere(どこでも検索)、ガターアイコンなどの機能を導入する Go マイクロサービスをサポートするようになりました。 これらの機能は Go プラグインをインストールすると利用できるようになります。現時点では、標準ライブラリ関数のみを使用できます。 詳細については、こちらをご覧ください。
IntelliJ IDEA で Spring Data MongoDB と連携する際に、JSON クエリのハイライト、演算子とドキュメントフィールドの補完、マッピングされたエンティティから Database(データベース)ツールウィンドウへの移動機能を使用できるようになりました。
未解決のメッセージ参照に欠落している import ステートメントを追加する、.proto ファイル用の新しいインテンションアクションが追加されました。 欠落している import ステートメントを追加した後、IDE はメッセージ参照の補完候補を表示します。
IntelliJ IDEA Ultimate でリクエストを実行し、実行中のサーバーインスタンスから直接サービスとメソッド名の補完を取得できるようになりました。 The project does not need to contain .proto files, but the server should support gRPC reflection.
IntelliJ IDEA Ultimate の Thymeleaf サポートが改善されました。インスペクションの誤検知を減らし、Thymeleaf テンプレートを編集する際の IDE のパフォーマンスを強化し、インスペクションとハイライトレベルを微調整して適切な通知を得られるようになっています。
IntelliJ IDEA Ultimate で Helidon フレームワークのサポートが改善されました。 IDE がプロパティファイルと .yaml ファイルの構成キーを補完するようになり、Go to Declaration(宣言に移動)と Quick Doc(クイックドキュメント)アクションをサポートするようになりました。
依存関係のダウンロードやアーティファクトのインポートといった Gradle プロセスの進捗バーが導入されました。 ファイルの処理を正確に追跡し、プロセスの完了時間を推定することができます。
Maven コンパイラープラグインに実験的機能を追加しました。 本番ソースとテストソースに対して個別に特定の言語レベルを設定できます。 このオプションは、Preferences(環境設定)/Settings(設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Build Tools(ビルドツール)| Maven | Importing(インポート)で有効にできます。
Code Vision の機能を更新し、IntelliJ IDEA で VCS 履歴に基づくコード作成者に関する情報を即時に表示できるようにしました。 Code Author(コード作成者)インレイヒントは、Preferences(環境設定)/ Settings(設定)| Editor(エディター)| General(一般)| Inlay Hints(インレイヒント)| Code Vision でデフォルトで有効になっています。
Annotate with Git Blame(Git Blame で注釈を付ける)機能を改善し、取り込まれた変更の調査をより簡単に行えるようにしました。 注釈にマウスポインターを合わせると、IDE が行間の差分をハイライト表示します。その注釈をクリックすると、Git Log(Git ログ)ツールウィンドウが開きます。
Commit Details(コミットの詳細)に、GPG 署名とビルドステータスに関する情報が表示されるようになりました。 従来、このデータは Git ログの列としてのみ表示されていました。
Git File History(Git ファイル履歴)ツールウィンドウの新しい UI は、インデックス作成プロセスとは無関係になりました。 新しいインターフェースでは、ログのインデックス作成がオフの場合でもデータが表示されます。
IDE 内でローカルに変更を適用したり、コミットしたりできるようになったため、IntelliJ IDEA で提案される変更内容に対応しやすくなりました。
IntelliJ IDEA 2022.1 では、ファイル形式に基づいて異なる外部差分ツールとマージツールを指定できるようになりました。 この構成を行うには、 Settings(設定)/ Preferences(環境設定)| Tools(ツール)| Diff & Merge(差分とマージ) | External Diff Tools(外部差分ツール)に移動してください。
IntelliJ Profiler という新しいプロファイラー構成が実装されました。 Async Profiler と Java Flight Recorder の機能を兼ね備えており、すべてのプラットフォームに対応したオールインワン型の単一プロファイリングツールを実装する目標に一歩近づきました。
Debugger(デバッガー)ツールウィンドウの Frames(フレーム)ビューでは、Drop Frame(フレームの削除)アクションをツールバーから除去し、インラインの Reset Frame(フレームのリセット)アイコンで使用できるようにしました。
Debugger(デバッガー)ツールウィンドウのスペースを最大限に使用できるよう、デフォルトでタブのラベルを非表示にしました。 ラベルを表示する場合やラベルの場所をカスタマイズする場合は、Layout Settings(レイアウト設定)の Show Tab Labels(タブラベルの表示)を使用します。
Selenium UI Testing プラグインのページオブジェクトエディターが大きく改善されました。 ワークフローを最適化し、UI を再設計することで、集中力を阻害する要素を減らすように改善しています。 ウェブページからページ要素をその場で即座にコードに追加し、Page Object Editor を閉じることなく編集を続けることができます。 また、新しいページ要素をコードに追加する際に使用するセレクターのタイプを選択することも可能です。
新しい Page Object(ページオブジェクト)ウィザードでは、ページオブジェクトクラスを新規作成する際に、言語とテスト自動化フレームワークを選択することができます。 また、Selenium ライブラリ依存関係を含むコード内のあらゆるポイントでウィザードを使用できます。 新しいファイルを作成せず、様々なフレームワークとカスタマイズされたテンプレートを使用した自動ページオブジェクト生成を試すには、Tools(ツール)| Open Selenium Page Object Playground(Selenium ページオブジェクトプレイグラウンドを開く)から、特別なプレイグラウンドモードを使用できます。
クラスターからロードされたリソースをエディタータブから変更できるようになりました。
kubectl が標準以外の場所にある場合、手動でパスを設定できます。 カスタムパスを設定するには、Settings(設定)/Preferences(環境設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Kubernetes | Path to kubectl executable(kubectl 実行可能ファイルへのパス)に移動してください。
pod のポート転送機能を利用できるようになりました。 ポートを転送するには、ツールバーのアイコンを使用するか、コンテキストメニューの項目を選択できます。
Services(サービス)ビューに表示されるすべてのリソースに使用できる Describe Resource(リソース情報の取得)アクションが新たに導入されました。 このアクションはコンテキストメニューか、ツールバーのボタンを使用して呼び出せます。
クラスターのイベントを Services(サービス)ビューの独立したノードで表示し、システムの最近のイベントに関するデータを確認できるようにしました。 特定 pod のイベントを表示するには、その pod に Describe Resource(リソース情報の取得)を呼び出し、そのアクションの結果から Events(イベント)セクションを探します。
werf.yaml と関連する Helm テンプレートファイルを限定的にエディターでサポートできるようにしました。コード補完機能、インスペクション、クイックフィックスの提案、.Values.werf.image.*
のリファクタリングと名前変更、および boolean
や int
などの一部のフィールドの検証などを行えます。
IntelliJ IDEA Ultimate で、テンプレート内の組み込みオブジェクトの補完と移動に影響する import-values 設定を使用して子要素の値をインポートする機能がサポートされました。
IntelliJ IDEA 2022.1 では、Services(サービス)ツールウィンドウの Docker UI を大幅に改良しました。 この改良は、コンテナー、イメージ、ネットワーク、およびボリュームに実装されています。
Docker Compose ターゲットのサポートを開始しました。 たとえば、Spring Boot アプリケーションを Compose ターゲット上で実行するには、実行構成に移動し、Manage targets(ターゲットの管理)から Compose ターゲットを作成してからアプリケーションを実行します。
Docker 1.6 以上で使用できるように、Docker Registry HTTP API V2 のサポートを開始しました。 Docker V2 の単純なレジストリかパスワードで保護されたレジストリを作成し、イメージの閲覧、プッシュ、プルといった頻繁に使用されるすべてのアクションを実行できます。
リモート開発に Backend Control Center(バックエンド制御センター)ウィジェットが追加されました。このウィジェットには、CPU の負荷、メモリ、ディスク容量、およびバックエンドのステータスを監視するために必要なその他のパラメーターが表示されます。
新しいセキュリティ設定では、リモートマシンから Git リポジトリへのアクセスを認証する際に SSH キーの転送機能を使用できるようになりました。 または、SSH エージェントヘルパーを使用してこの操作を行うことも可能です。
リモートマシンの IDE バックエンドのダウンロードパスと正確な場所を指定できるようになりました。
JetBrains Client がさらに多くのファイルエディターをサポートするようになり、テキストベースのファイルだけでなく、PNG 画像、UML ダイアグラム、Jupyter Notebook ファイル、および Android レイアウトリソースも扱えるようになりました。
Run with coverage(カバレッジ付きで実行)と Profiler(プロファイラー)ウィンドウがガターメニューに追加されました。 コンテキストメニューに Maven と Gradle のツールウィンドウが表示されるようになったほか、より有用になったサブメニューアイテムも追加されています。
また、デバッグ機能を改善し、複数のアクションを利用できるようになりました。リモートで開発する際に、楽にコードを調べられるようになっています。
複数のテーブルを選択して、別のスキーマにコピーできるようになりました。 テーブルを選択して F5
を押し、エクスポートダイアログを開きます。 単一のテーブルをエクスポートする際に、列をマッピングし、新しいテーブルの DDL を表示して変更することができます。
IDE ではクロス DBMS エクスポートがサポートされているため、ターゲットスキーマをプロジェクトのあらゆるデータベースに属させることができます。 詳細については、このブログ記事をご覧ください。
リレーショナルデータベースと同様に、MongoDB コレクションの結果を簡単に編集できるようになりました。 .find()
で取得した結果セットも編集できます。 sort()
や limit()
など、結果に変更を加えるカーソルメソッドが .find()
の後に実行された場合でも機能します。
実行中のステートメントをキャンセルするロジックが更新されました。 リクエストがキャンセル中であることがより明確になったため、警告が表示されることなくデータソースを解除することがなくなりました。 詳細については、こちらのブログ記事をご覧ください。
データソースを解除せずに、接続の作成プロセスを停止できるようになりました。 接続の作成中に Cancel(キャンセル)ボタンをクリックすると、そのプロセスが停止し、「接続がキャンセルされました」というメッセージが表示されます。 この更新の詳細については、こちらのブログ記事をご覧ください。
React が組み込みでサポートされているため、Next.js プロジェクトではすでにすべての重要な機能が動作するようになっています。 IntelliJ IDEA 2022.1 では、ページなどのフレームワーク固有の機能に対するサポートを新たに開始しています。 IDE は Link
コンポーネントの href
プロパティだけでなく、form などのその他のタグで使用されるパスも解決します。 コード補完、ナビゲーション、およびリファクタリングも動作します。
このリリースでは、JavaScript ツールマネージャーである Volta と適切に統合できるようになっています。 IntelliJ IDEA 2022.1 は、Volta を使用してインストールされた Yarn と npm を自動的に認識します。
extension
メソッドを自動補完できるようになりました。 また、エディターには、extension
メソッドと given
インスタンスを自動的にインポートする機能が備わっています。 infix
修飾子と @targetName
アノテーション用の新しいインスペクションにより、コードスタイルの一貫性を維持しやすくなりました。 .tasty
リーダーのパフォーマンスを大幅に改善したため、Scala 3 ライブラリのインデックス作成速度が最大 2 倍になっています。
新しい Scala プロジェクトの構成がさらに容易になりました。 New Project(新規プロジェクト)ウィザードの更新により、プロジェクト JDK、希望するビルドシステム、および Scala バージョンをワンステップで選択できます。
Scala では、String
、Seq
、List
、Set
、Map
など、ほとんどにエイリアスが使用されています。 これが原因で構文ハイライト、移動、クイックドキュメント、クイック定義、使用箇所の検索、インポートの最適化 などの IDE の機能はうまく機能していませんでした。なぜなら、これらの機能は実際の定義ではなくエイリアスに対して動作しているためです。 このユーザーエクスペリエンスを向上させるため、エディターは標準ライブラリ内のエイリアスを透過的なエクスポートとして処理するようになりました。たとえば List
は scala.List
ではなく、scala.collection.immutable.List
を意味します。
従来、未使用の宣言の検出は private
バインディングに制限されていました。 このバージョンの Unused declaration(未使用の宣言)インスペクションでは、クラス、メソッド、変数、パラメーターなどで導入される public バインディングをサポートしています。
このリリースでは、Scala デバッガーを一新し、合理化させることに努めました。 objects
、プライマリコンストラクターパラメーター、class
、Array
、lazy val
の値、コレクションの処理をアップグレードし、式の評価を改善しました。
IDE でコードの変更をレビューする際に、コードレビューのコメントを投稿するタイミングを選択できるようになりました。
For more details, check out this blog post.
適切なキーボードショートカットを表示するように、コードレビューのユーザーインターフェースを改善しました。 コードレビューのコメントを投稿する際には、Enter を使って改行を追加できます。 Ctrl+Enter を押すと、コメントが保存または投稿されます。