IntelliJ IDEA 2024.1 にはワークフローの合理化を支援する素晴らしい多数の改善が施されています。 IntelliJ IDEA Ultimate には行全体コード補完機能が追加され、コード行全体に対してコードを認識した詳細な候補が提供されるようになりました。 Java 22 がサポートされているため、最新の言語機能との互換性が確保されています。 ターミナルが全面的に見直され、コマンドライン操作が強化されました。エディターでは行固定表示により、コードベース内の移動操作をよりスムーズに行えるようになりました。 バージョン 2024.1 では、これ以外にも IDE のさまざまな箇所に多数の改善が行われています。 以下でご確認ください!
IntelliJ IDEA Ultimate 2024.1 には Java および Kotlin に対応した行全体コード補完が導入されています。 この機能は IDE にシームレスに統合された高度なディープラーニングモデルによって実現されています。 コンテキストを解析した結果に基づいてコード行全体を予測して候補を提供することで、コーディングの効率を向上させます。 この候補はさまざまな言語とフレームワークに特化してトレーニングされ、外部サーバーとの通信を必要とすることなくデータの安全性を確保できるように完全にローカルデバイスで動作する特殊な言語モデルによって提供されます。 この機能は IntelliJ IDEA Ultimate ライセンスのサブスクリプションに含まれています。 詳細については、こちらのブログ記事をご覧ください。
IntelliJ IDEA 2024.1 は 2024 年 3 月にリリースされた JDK 22 の機能セットをサポートしています。 このサポートの内容には無名変数とパターンの最終イテレーション、文字列テンプレートと暗黙的に宣言されたクラスの第 2 プレビュー、およびインスタンスの main
メソッドのサポートが含まれます。 また、この更新では super(...)
の前の new ステートメントのサポートをプレビュー状態で導入しています。 詳細については、こちらのブログ記事をご覧ください。
IntelliJ IDEA 2024.1 ではターミナルが全面的に改善されており、視覚的および機能的な強化によってコマンドラインタスクが合理化されています。 この更新によって使い慣れたツールの外観が一新され、コマンドが個別のブロックに分割されました。ブロック間の円滑な移動やコマンドの補完などの機能強化が行われているだけでなく、コマンド履歴へのアクセスも容易になっています。 詳細については、こちらのブログ記事をご覧ください。
大きなファイルでの作業と新しいコードベースの参照を簡単にするため、エディターで行を固定表示できるようにしました。 この機能を使用すると、クラスやメソッドの開始部などの重要な構造要素をエディターの上部にピン留めした状態でスクロールできます。 そうすれば常に表示範囲が固定され、ピン留めされた行をクリックして迅速にコード内を移動できます。
AI Assistant にテスト生成とクラウドコード補完の改善、コミットメッセージのカスタムプロンプト、コードスニペットからのファイルの作成機能、エディター内コード生成の更新などの複数の重要な更新が行われています。 詳細については、こちらのブログ記事をご覧ください。
バージョン 2024.1 では AI Assistant がバンドル対象から外れ、個別のプラグインとして提供されるようになったことにご注意ください。 この変更は AI 駆動型テクノロジーの使用に関する意思決定をより柔軟に行い、ユーザーの好みや作業環境の要件をより細かく制御できるようにする必要性を考慮して行われたものです。 AI Assistant には引き続き有効な JetBrains AI サブスクリプションが必要です。
Java と Kotlin のコードハイライトや補完などの基本的な IDE 機能がプロジェクトのインデックス作成中に機能するようになったため、起動時の使い勝手が向上しています。 また、プロジェクトの読み込み中に Go to class(クラスに移動)と Go to symbol(シンボルに移動)を使用してコード内を移動できるようになっています。
新規プロジェクトの構成操作の分かりにくさを軽減するため、New Project(新規プロジェクト)ウィザードのレイアウトを若干調整しました。 言語リストの位置が左上に変更され、最も一般的なオプションが見つけやすくなっています。
IDE を 90%、80%、または 70% に縮小表示できるようになったため、IDE の要素のサイズを柔軟に拡大縮小できるようになりました。
IntelliJ IDEA 2024.1 には言語を文字列テンプレートに注入する機能が導入されています。 この操作は必要な言語を自動的に選択するアノテーションを使用するか、Inject language or reference(言語または参照を注入)インテンションアクション(Alt+Enter)を使用してリストから言語を手動で選択することで実行できます。 後者の方法を使用した場合、IDE が言語アノテーションの挿入を提案します。 注入を実行した後は、インテンションアクションのリストをもう一度呼び出し、注入された箇所を選択して別のエディターペインで開いて編集できます。
ログの記録は日常的な開発の中で重要な役割を果たしているため、IntelliJ IDEA のログに関するユーザーエクスペリエンスを強化するさまざまな更新を行いました。 コンソールのログメッセージからそれを生成したコードに簡単に移動できるようになりました。 また、IDE はロガーインスタンスがスコープ外にある場合でも、必要な場所にロガーを追加するよう提案してロガーステートメントの挿入を単純化します。 詳細については、こちらのブログ記事をご覧ください。
コードを簡潔でエラーのないものにするための新しいインスペクションとクイックフィックスを実装しました。 IDE がコードを分かりやすくするため、Long.hashCode()
または Double.hashCode()
メソッドへの呼び出しと置換できるビット演算を検出するようになりました。 また、新しいクイックフィックスを使用することで、コードベースの要件に基づいて暗黙的なクラス宣言と明示的なクラス宣言を簡単に切り替えられるようになっています。 別の新しいインスペクションは対応するコード箇所に既存の static メソッドの使用し、追加の API を導入せずにコードを再利用しやすくするよう提案します。 さらに、IDE が実行されることのない到達不能コードを検出して報告するようになりました。
IntelliJ IDEA 2024.1 ではマルチリリース JAR ライブラリに関するユーザーエクスペリエンスが強化されています。 異なるバージョンのあるクラスを使用する際に Go to declaration(宣言に移動)機能を使用すると、現在のモジュールの言語レベルに基づく適切なバージョンが JAR から選択されるようになりました。 さらに、Go to class(クラスに移動)機能でクラスのバージョンに関する追加情報が提供されるようになりました。 デバッグ中に Step Into(ステップイン)を使用すると、モジュールの言語レベルではなく、JDK バージョンに対応するクラスに移動します。
バージョン 2024.1 では Conflicts Detected(検出された競合)ダイアログを改良し、可読性を高めました。 ダイアログ内のコードがエディターの内容を反映するようになったことで競合に関するインサイトをより明確に把握できるようになりました。また、IDE は調整したウィンドウサイズを自動的に保存して再利用できるようにします。 さらに、ボタンとその動作を更新してリファクタリングのワークフローを合理化しました。また、ダイアログが完全にキーボードでアクセス可能になったため、ショートカットと方向キーを使ってスムーズに操作できるようになりました。
名前の変更をより簡単かつ直感的に行えるようにするため、変更対象のコード要素の上に新しいインレイヒントを表示するようにしました。 このヒントをクリックして変更を確定するだけで、コードベースのすべての参照を新しいバージョンに更新できます。
IntelliJ IDEA 2024.1 には、組み込みの K2 Kotlin コンパイラーを利用して高度な Kotlin コード解析を行う新しい Kotlin K2 モードが導入されています。 この更新により、今後公開される Kotlin 機能との互換性が確保されるだけでなく、コード解析の安定性が向上し、IDE 機能の品質と信頼性が強化され、全体的なアプリケーションのパフォーマンスも改善されます。 詳細はこちらをご覧ください。
バージョン 2024.1 以降の IDE は明示的に指定がない限り、すべてのプロジェクトに対して公式の Kotlin スタイルガイドをデフォルトで一律に適用するようになりました。 既存のプロジェクトで明示的に構成されずに古いコードスタイルが使用されている場合、IDE は Kotlin コーディング規則のコードスタイルに自動的に切り替え、この変更を警告する通知を表示します。 好ましくない書式の変更を防ぐため、こちらのコードスタイルの移行ガイドをよくお読みになることをお勧めします。
バージョン 2024.1 では静的インポートが正確に保持され、ソースコードでの見た目通りに移行されるようになりました。 これは、ネストしたオブジェクト、列挙型、および Java の静的インポートを扱う場合に特に役立ちます。
新しいリリースでは、Scala 3 の特定の構文ケースの処理方法に関する多数の問題が修正されています。 改善点には、禁止された修飾子の混在を認識する機能、インデントの深度を計算する機能、インデントを壊さずに演算を切り取って貼り付ける機能、および終了マーカーを構文構造に関連付ける機能が含まれます。 また、デバッガーにおける Scala 3 のサポートを改善し、自動補完が using
および given
キーワードや unapply
シグネチャーと一緒に使用される場合などのコーナーケースを正確に処理できるようになりました。
Scaladoc のポップアップとクイックドキュメントのポップアップでのクラス、トレイト、およびメソッド宣言のハイライト動作について多数の軽微な改善と修正が行われています。 ネストしたジェネリックパラメーターが正しくハイライトされるようになり、フィールドアクセス修飾子が表示されるようになっています。 また、三重括弧の Scaladoc ブロック内のコードが標準の Scala コードと同じようにハイライトされるようになりました。
従来はコンパイラーベースのハイライトを使用している最中に別のエディターに切り替えると、コードが自動的に再コンパイルされていました。 バージョン 2024.1 ではこの動作が変更されました。 コードが再コンパイルされるかどうかは、エディターにフォーカスがあるかどうかで決まるようになりました。 このため、コンパイラーベースのハイライトがソースおよび .class
ファイルに対する外部の変更により素早く反応するようになり、有効なコードが赤になる状況を回避できます。
IDE が新しい SBT プロジェクトに .gitignore
ファイルを追加するようになりました。 Scala/JVM アプリケーションが Use sbt for builds(ビルドに sbt を使用する)で初めて実行される場合に例外がスローされる問題を修正し、インポート中にモジュールのすべての推移的な依存関係が直接的な依存関係として挿入されるようにしました。
古い Play Framework バージョン(2.8 以下)と JDK 17 の互換性に関する問題を解決するため、Play ウィザードが互換性のない Play と JDK のバージョンが使用されていることを警告するようにしました。
New Project(新規プロジェクト)ウィザードと View(ビュー)| Tool(ツール)ウィンドウの SBT に新しいアイコンを導入しました。 また、角を丸めたり、位置合わせが改善されたりなど、インレイヒントの表示が若干強化されています。 さらに、Settings(設定)| Editor(エディター)| CodeStyle(コードスタイル)ヘルプページに Scala ドキュメントが追加されています。 ワークシートでは、Scala 2.13.12 を使用する際のコンパイルエラーがビルドウィンドウ内で正しく再報告されるように変更され、インポートが最初のコードコンパイルの前に誤って未使用としてマークされることがなくなりました。 また、X-Ray 機能をピン留めできるようになり、Ctrl キーを離した後でもアクティブに維持できるようになりました。
IntelliJ IDEA 2024.1 では新しいレビューモードが実装され、GitHub および GitLab ユーザーの両方にとってコードレビューの使い勝手が改善されています。 エディターに組み込まれたこの機能により、作成者とレビュー担当者が直接やりとりできるようになりました。 プルリクエストまたはマージリクエストのブランチを確認する際にはレビューモードが自動的に有効になり、コードの変更がレビュー可能であることを示すピンクのマーカーがガターに表示されます。 このマーカーをクリックすると元のコードを含むポップアップが表示されますので、変更内容をすぐに把握できます。 ガターアイコンは新しいディスカッションを速やかに開始したり、既存ディスカッションの表示/非表示を切り替えたりするのに役立ちます。 ガターアイコンからコメントへのアクセスも可能なため、レビュー、返信、コメントへのリアクションも簡単です。 この変更についての詳細は、ブログ記事をお読みください。
IntelliJ IDEA 2024.1 ではブランチ関連の変更に的を絞ったビューを提供することで、コードレビューワークフローを合理化しています。 GitHub、GitLab、および Space では、Git ツールウィンドウ内の別の Log(ログ)タブで特定のブランチの変更を確認できるようになりました。 これを行うには、Pull Requests(プルリクエスト)ツールウィンドウでブランチ名をクリックし、メニューから Show in Git Log(Git ログで表示)を選択します。
IntelliJ IDEA 2024.1 では、既製の絵文字セットを使用して GitHub プルリクエストと GitLab マージリクエストのレビューコメントにリアクションを投稿できるようになりました。
Git ツールウィンドウの Log(ログ)タブに新しい列を導入し、CI システムが実行した GitHub コミットチェックの結果を簡単に確認できるようにしました。
バージョン管理システムに変更を正しくプッシュした後、IDE がプッシュの成功とプル/マージリクエストを作成するアクションの提案を 1 つの通知で警告するようになりました。
コードレビューワークフロー内の保留中の更新を知らせる視覚的なインジケーターを導入しました。 注意が必要な変更がある場合、ツールウィンドウのアイコンにドットが表示されます。 未確認のプルリクエストにも青いドットが付くため、コードレビュープロセスの更新を見逃すことがありません。
サイズが大きすぎるファイルをバージョン管理システムが受け付けない事態を回避するため、そのようなファイルのコミットを阻止して制限について通知するコミット前チェックを IDE に実装しました。
Merge into(マージ)ダイアログのドロップダウンメニューに Allow unrelated histories(無関係の履歴を許可)オプションが追加されました。 このオプションを選択すると、共通の履歴がない 2 つのブランチでもマージすることができます。
Git ツールウィンドウの Show all branches(すべてのブランチを表示)ボタンをブランチフィルターに置き換え、指定ブランチ内のファイルに行われた変更をレビューできるようにしました。 また、ツールバーを調整して横向きにすることでユーザビリティを改善しています。
一時的な未コミットの変更を格納するのにスタッシュを使用しているユーザーのアクセス性を高めるため、Commit(コミット)ツールウィンドウ内に専用のタブを導入しました。 スタッシュとシェルブの両方を使用する場合は、これらを組み合わせた Stashes and Shelves(スタッシュとシェルブ)タブを Settings(設定)/Preferences(環境設定)| Version Control(バージョン管理)| Git の対応するチェックボックスで有効にできます。
関連のある変更だけに専念できるようにするため、差分ビューアーで比較する際に無視するフォルダーとファイルを指定できるようになりました。 比較結果に表示しないファイルまたはフォルダーを右クリックし、コンテキストメニューから Exclude from results(結果から除外)を選択するだけで除外できます。
バージョン管理システム内をより素早く正確に移動できるようにするため、Branches(ブランチ)ポップアップで検索結果をアクションとリポジトリで絞り込めるようにしました。
ユーザーの使用統計を解析した結果、Search Everywhere(どこでも検索)ダイアログから Git タブをデフォルトで除去することにしました。 このタブを復活させたい場合は、Settings(設定)/ Preferences(環境設定)| Advanced Settings(高度な設定)| Version Control. Git。
IntelliJ IDEA が pom.xml
ファイルの構文を解析してプロジェクトモデルを構築するようになりました。 これによって同期が完全に完了するのを待たずにプロジェクトに着手できるようになり、作業中のプロジェクトの構造を数秒で取得し、すべての依存関係を含む完全なプロジェクトモデルをバックグラウンドで構築できるようになりました。
IntelliJ IDEA 2024.1 のリリースに伴い、Maven Shade プラグインの名前変更機能がついにサポートされるようになりました。 IntelliJ IDEA がその名前変更ワークフローを認識するようになったため、shaded JAR とその依存関係を扱う際に正確なコードハイライトと移動操作を実現できるようになりました。
ソースコードを簡単にダウンロードする方法がクイックドキュメントのポップアップに追加されました。 ライブラリまたは依存関係のドキュメントを表示中にソースコードにアクセスする必要がある場合、F1 を押すだけでアクセスできるようになりました。 更新されたポップアップには必要なソースファイルをダウンロードするための直接リンクが表示されるため、ワークフローが合理化されます。
Maven リポジトリのリストとインデックス作成ステータスが従来の Maven 設定内の場所ではなく、Maven ツールウィンドウに表示されるようになりました。
このバージョン以降の IntelliJ IDEA は Gradle バージョン 4.5 以前を使用するプロジェクトをサポートしません。そのため、IDE はサポート対象外の Gradle バージョンを使用するプロジェクトに Gradle の同期を実行しなくなります。
IntelliJ IDEA 2024.1 では、ラムダ関数または return ステートメントを含む行にブレークポイントをより便利に設定できるワークフローが提供されています。 ガターをクリックしてブレークポイントを設定すると、IDE がブレークポイントを追加で設定できるインラインマーカーを自動的に表示します。 各ブレークポイントは個別に構成できるため、高度なデバッグが可能になります。
Debug(デバッグ)ツールウィンドウのコールスタックでライブラリの呼び出しがデフォルトで折りたたまれるようになり、コードを参照する際に集中力を維持しやすくなりました。 ただし、ライブラリの呼び出しシーケンスを確認する必要がある場合は、適宜グループを展開してフレームを調べることができます。 リストを表示するには、ツールバーの Filter(フィルター)アイコンを使用するか、コンテキストメニューを呼び出して Hide Frames from Libraries(フレームをライブラリから非表示)オプションを無効にできます。
バージョン 2024.1 の IntelliJ IDEA は包括的なテストカバレッジの達成にまた一歩近づいています。 この更新は、テストによって完全にカバーされていない条件ステートメントの特定に焦点を置いたものです。 IntelliJ IDEA がカバーされていない条件を含む行を表示し、カバーされていない条件分岐や変数の値を明示するようになりました。 この機能はデフォルトで有効になっており、Settings(設定)/Preferences(環境設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Coverage(カバレッジ)で管理できます。
コードカバレッジ設定が Run Configuration(実行構成)ポップアップから Settings(設定)/Preferences(環境設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Coverage(カバレッジ)に移動されました。 この移動により、テストを実行するたびにカバレッジランナーを選択したり、特定コード行をカバーするテストの追跡などの高度な機能を有効にしたりするために構成を個別に更新する必要がなくなりました。
JaCoCo ランナーが CI/CD パイプラインで収集するコードカバレッジデータをインポート、閲覧、および解析しやすくなりました。 Coverage(カバレッジ)ツールウィンドウにレポートが表示されていない場合、JaCoCo レポートをインポートするための直接リンクがそこに表示されるようになっています。 また、ウィンドウのツールバーに JaCoCo レポートを .exec
ファイルとして取得できるインポートアイコンが追加されました。
IntelliJ IDEA Ultimate がアプリケーションのコンテキストからすべての Bean を自動補完し、自動的にオートワイヤリングする機能を提供するようになりました。 Bean がコンストラクター経由で依存関係をオートワイヤリングする場合、関連するフィールドもそのコンストラクターを通じて自動的にワイヤリングされます。 同様に、依存関係がフィールドまたは Lombok の @RequiredArgsConstructor
アノテーション経由で注入される場合、新しい Bean はそのフィールドを通じてワイヤリングされます。
Spring モデルのダイアグラムにより簡単にアクセスできるようになりました。 Bean ラインマーカーを使用するか、Spring クラスにインテンションアクション(Alt+Enter)を使用して、ダイアグラムを呼び出すことができます。 Spring ダイアグラム用の新しいアイコンを導入し、Spring のコンポーネント、コントローラー、リポジトリ、構成 Bean などのステレオタイプの視覚表示を強化しています。 また、デフォルトで非表示になっているライブラリの Bean の可視性を便利に切り替えられるようになっています。
バージョン 2024.1 の HTTP クライアントでは、PKCE 認証コードやデバイスグラントフローなどの認証オプションが追加されています。 また、PKCE リクエスト時のトークンを取得するための code_challenge
生成と code_verifier
の受け渡しを自動的に処理するだけでなく、トークンおよび認証リクエストの追加パラメーターもサポートしています。 HTTP クライアントの低レベルネットワーキングライブラリを Netty にアップグレードしたことで、SSL、プロキシ、および HTTP/2 のサポートが可能になり、HTTP/2 を実装しやすくなりました。 また、HTTP クライアントのツールバーが新しい UI のスタイルに合わせて改良されたことで、より洗練された一貫性のある外観になっています。
Search Everywhere(どこでも検索)ダイアログに Endpoints(エンドポイント)タブを導入して強化しました。このタブは URL 検索の結果が関連するプロジェクトに表示されます。 現時点ではプロジェクト内に Spring、Micronaut、Ktor、または Quarkus テクノロジーの存在が検出されると、このタブが自動的に表示されるようになっています。
HTTP ヘッダーが Spring WebClient や REST Assured テストなどのすべての一般的なシナリオで簡単に補完されるようになりました。 必須の値がある場合は補完ポップアップが自動的に表示されます。
JSON スキーマの検証と補完の処理を担っているコードを最適化しました。 それにより、IDE はこれらのタスクをより素早く、より少ないメモリ消費量で処理できるようになっています。 Azure Pipelines による実際のファイルでは、スキーマのインスペクション速度が 10 倍に向上しています。
Quarkus の実行構成に対応した新しい設定エディターを導入しました。 Run/Debug Configuration(実行/デバッグ構成)ダイアログで Maven と Gradle の両方のプロジェクトの UI が改善され、Run profile(実行プロファイル)や Environment variables(環境変数)などの一般的な設定にアクセスしやすくなっています。 利便性を高めるため、Quarkus Dev UI は Run(実行)ツールウィンドウのツールバーに新たに追加されたアイコンから簡単にアクセスできるようになっています。
IntelliJ IDEA Ultimate 2024.1 は OpenRewrite を統合しており、IDE の既存のリファクタリング機能を拡張し、コードの品質、一貫性、および保守可能性を改善するためのツールキットを提供しています。 OpenRewrite のレシピを使用することで、既存コードの現代化、パフォーマンスの最適化、および新しい Spring Boot バージョンへのアップグレードなどの複雑な移行タスクを処理できます。
IDE からインストールまたは JetBrains Marketplace から取得可能なプラグインを通じて WireMock をサポートするようにしました。 このサポートの内容には JSON 構成用のスキーマの補完、Endpoints(エンドポイント)ツールウィンドウから WireMock スタブファイルを生成する機能、およびエディターからサーバーを直接起動できる組み込みの実行構成が含まれています。 この追加サポートによってテストデータサーバーやスタブを迅速に作成できるようになり、ウェブ UI やマイクロサービスの開発が簡単になります。
IntelliJ IDEA Ultimate 2024.1 では Terraform のサポートが改善され、インフラストラクチャの作成、管理、およびスケーリングのプロセスが単純化されました。 IDE が terraform init
の実行を明示的に提案して効率よく初期化できるようになりました。また、コード補完機能が 3,900 を超えるサードパーティの Terraform プロバイダーに対応できるように拡張されています。 また、IDE が Terraform のテンプレート言語(tftpl)をサポートするようになり、動的テンプレートと好みのプログラミング言語をシームレスに統合するオプションを有効にできるようになりました。 詳細については、ブログ記事をご覧ください。
このリリースでは、データエディターに待望のローカルフィルター機能が導入されています。 データベースにクエリを送信せずに列の値で行を素早く絞り込めるようになりました。 ローカルで動作するこの仕組みは現在のページのみに影響しますが、範囲を広げたい場合はページサイズを調整したり、すべてのデータを取得したりできます。 すべてのローカルフィルターを無効にするには、専用の「ローカルフィルターの有効化」アイコンを選択解除します。
IntelliJ IDEA Ultimate 2024.1 では手動でセッションを選択する必要性をなくし、効率よくクエリを実行できるようにしています。 従来とは異なり、ファイルをアタッチする際にはセッションではなく、データソースを選択するだけでよくなりました。 また、関数を起動するのにセッションを選択する必要がなくなり、コンソールまたはファイルから関数を直接実行することを選択できるようになりました。 これらの変更は不要なステップを減らし、全体的なユーザビリティを高めることによってツールを最小限の労力で習得できるようにすることを目的としています。
クリックドキュメントのポップアップを大幅に強化しました。 コードブロックの構文ハイライトがサポートされるようになりました。 TypeScript のインターフェースのメンバー、列挙型定数、および型エイリアスの本体を表示するようになりました。 Show more(その他を表示)リンクを使用すると、型メンバーの完全なリストが展開され、参照型に移動できます。 また、ダイアログの上部にあるページ切り替えボタンを使用し、インターフェース、型エイリアス、列挙型、関数、およびその他のエンティティの宣言間を移動できるようになりました。
IntelliJ IDEA Ultimate 2024.1 に props と状態をその場で作成できる React 用の新しいクイックフィックスがいくつか導入されました。 これらのクイックフィックスは、Alt+Enter ショートカットを使って適用できます。
ステータスバーに新しい Langauge Services(言語サービス)ウィジェットが導入され、現在のファイルとプロジェクトの有効な言語サービスに関するインサイトを得られるようになりました。 このウィジェットから直接サービスを再起動したり、設定に移動したりできます。