IntelliJ IDEA 2023.2 には、一連の AI を搭載した機能により開発効率を向上させる AI Assistant が導入されています。 改良を施した IntelliJ Profiler ではエディター内にヒントを表示することで、より直感的で有益な情報を入手できるプロファイリング処理を実現しています。 このリリースには開発ワークフローの効率を高める GitLab の統合機能に加えて、以下に記載している注目すべきアップデートと改良点も取り込まれています。
このリリースでは、IntelliJ IDE への重要な追加機能である AI Assistant が導入されています。 現時点の AI 技術を搭載した機能を駆使し、AI Assistant は組み込みの AI チャットを提供します。これは、ドキュメントコメントの自動記述やコミットメッセージの生成などの処理を実行できます。
AI Assistant は JetBrains AI サービスによって提供されており、現時点では OpenAI に接続できるようになっています。将来的には他の言語モデルプロバイダーにも対応する予定です。 アシスタントの AI 機能にアクセスするには、AI Assistant プラグインをインストールし、JetBrains Account を使用して JetBrains AI サービスにログインする必要があります。 JetBrains AI サービスの利用が可能かどうかについては、お客様によって開始時点で異なる場合があります。 AI Assistant に関する詳細とそのアクセス方法については、こちらのブログ記事をご覧ください。
IntelliJ IDEA 2023.2 では IntelliJ Profiler を強化し、アプリケーションのパフォーマンスに関するインサイトをより有益で解釈しやすい形で提供するようにしました。 この新しいエディター内のヒントを頼りにコードのパフォーマンスを行単位で素早く解析できるため、課題をより迅速に識別して解決できます。 エディターのガターでは色分けされたアノテーションによって重要なメソッドがハイライトされるため、パフォーマンスのボトルネックが生じている箇所に的を絞って対応できます。 つまり、Flame Graph(フレームグラフ)ビューや Call Tree(呼び出しツリー)ビューを使って時間のかかる完全な解析を実行する必要はありません。 詳細については、このブログ記事を参照してください。
IntelliJ IDEA 2023.2 には開発ワークフローを合理化する GitLab との統合機能が導入されています。 リクエストのリストの確認、変更内容の確認、コメントの書き込み、関連するビューへの移動など、IDE から直接マージリクエスト機能を操作できます。 詳細はこちらをご確認ください。
Search Everywhere(どこでも検索)(Double Shift)は主にファイル、クラス、メソッド、アクション、および設定の検索に使用されます。 このアップデートでは、Find in Files(複数ファイル内検索)と同様のテキスト検索機能が追加されています。 これにより、ある特定のクエリに対する検索結果がほとんどない場合にテキスト検索の結果が表示されるようになりました。 この機能はデフォルトで有効になっており、Settings(設定)/Preferences(環境設定)| Advanced Settings(高度な設定)| Search Everywhere(どこでも検索)で管理できます。
IntelliJ IDEA 2023.2 では開いている複数のプロジェクト間を簡単に移動できるように色付きのプロジェクトヘッダーが導入されています。 プロジェクトごとに固有の色とアイコンを割り当てられるようになっているため、ワークスペース内のプロジェクトがより区別しやすくなりました。 ヘッダーには定義済みの色がデフォルトで適用されていますが、これはカスタマイズできます。 プロジェクトに新しい色を設定するには、まずはヘッダーを右クリックしてコンテキストメニューを開きます。 次に、Change Project Color(プロジェクトの色を変更)オプションを選択し、候補リストまたはカラーパレットを参照して希望する色を選択します。 この機能を無効にするには、コンテキストメニューの Show Project Gradient(プロジェクトのグラデーションを表示)オプションを選択解除します。
Windows および Linux の新しい UI でメインツールバーにあるハンバーガーメニューの動作を改良しました。 メニューアイコンをクリックすると、その構成要素がツールバー上で横方向に表示されるようになっています。 また、View(表示)| Appearance(外観)| Main menu as a Separate Toolbar(メインメニューをツールバーとして分離する)にはこのメニューを独立したツールバーに変換するオプションもあります。
IntelliJ IDEA 2023.2 には Project(プロジェクト)ビューのファイルを変更日時に基づいて並べ替える待望のオプションが導入されています。 この新機能により、プロジェクトの変更が保存されるたびにファイルが自動的に並べ替えられるようになります。 この機能を有効にするには Project(プロジェクト)ビューのケバブメニュー(縦三点リーダー)を開き、Tree Appearance(ツリーの外観)| Sort by Modification Time(変更日時で並べ替え)を選択します。
バージョン 2023.2 は代替の Light with Light Header(ライトヘッダーを使ったライト)テーマが導入されたため、ユーザーエクスペリエンスが向上しています。このテーマではウィンドウのヘッダー、ツールチップ、および通知バルーンで対応する明るい色が使用されます。
macOS の新しい UI で全画面表示モードを使用する場合、ウィンドウコントロールがフローティングバーではなく、メインツールバーの右に表示されるようになりました。
Linux ユーザーの利便性を考慮し、オペレーティングシステムのネイティブヘッダーが新しい UI から削除されました。その結果、よりすっきりとしたインターフェースになっています。 デフォルトでは IDE のカスタムヘッダーが表示されるようになっていますが、ユーザーのワークスペースに合わせてカスタマイズできるオプションが豊富に提供されています。 前のヘッダーの外観に戻すには、Settings(設定)| Appearance & Behavior(外観と動作)| Appearance(外観)| UI Options(UI オプション) の Merge main menu with window title(メインメニューとウィンドウタイトルをマージ)オプションをオフにします。
Settings(設定)/ Preferences(環境設定)| Editor(エディター)| Inspections(インスペクション)のコードサンプルで構文がハイライトされるようになりました。インスペクションのトリガー元を把握し、そのインスペクションを有効または無効にするかを決めやすくなっています。
より迅速かつ応答性の高いプロジェクトフォルダーの展開と折りたたみを可能にする新しい Open Directories with Single Click(ワンクリックでディレクトリを開く)オプションが Project(プロジェクト)ビューに追加されています。 このオプションはケバブ(縦三点リーダー)メニューをクリックして開くドロップダウンメニューにあります。
新しい UI のメインツールバーのカスタマイズオプションを拡張しました。 ドロップダウンメニューを使用して必要なアクションを素早く選択し、このツールバーに追加できるようになっています。 これを行うには任意のウィジェットで右クリックして Add to Main Toolbar(メインツールバーに追加)を選択し、使用できるオプションを参照します。
IDE を特定のプロジェクトに合わせて構成し、その機能をプラグインで拡張しやすくするため、Settings/Preferences(設定/環境設定)| Plugins(プラグイン)セクションの UI を更新しました。 プロジェクトの仕様に応じて、自動的に決まる推奨プラグインのセットがリスト上部に表示されるようになります。
Services(サービス)ツールウィンドウ内の実行およびデバッグアクション用の UI を改良し、メインの Run/Debug(実行/デバッグ)ウィジェットと同様のツールバーの外観と使い心地を実現しました。
複数の実行構成を管理しやすくするため、Run(実行)ウィジェットにお好みの構成をピン留めできるオプションを実装しました。 Pinned(ピン留め)セクションに実行構成を追加するには、名前の横にあるケバブメニュー(縦三点リーダー)を開いて Pin(ピン留め)を選択します。 ピン留めされた構成が複数ある場合はドラッグアンドドロップ操作でリスト内の構成の位置を簡単に調整できます。
高品質のコードを維持し、潜在的な課題の検出をより効果的に行えるように Java インスペクションの改良と追加を行いました。 新しい Incorrect ‘MessageFormat’ pattern(誤った ‘MessageFormat’ パターン)インスペクションはパターン参照が引数に一致しない場合に警告を発し、MessageFormat パターン内の誤った引用符と括弧の使用箇所も検出します。 また、IDE が明示的な ChronoField または ChronoUnit 引数を使用する呼び出しを報告し、より具体的なメソッドの呼び出しに置換してコードを単純化するように提案するようになりました。 IntelliJ IDEA 2023.2 の新しいインスペクションとその他のコード解析に関する改善については、こちらのブログ記事をご覧ください。
書式指定子にキャレットを置くと、IDE が対応する引数とそれを指すその他の指定子をハイライトするようになりました。 また、Go To Declaration(宣言に移動)(Ctrl+B)を使用して特定の書式文字列のプレースホルダーに関連するコードの場所に移動できるようになりました。
@snippet タグのサポートを改善 IntelliJ IDEA で Javadoc コメントの @snippet タグの機能が改善されました。 @snippet タグ内にマークアップコメントを記載し、それをドキュメントで適切に表示できます。 コードリージョンがサポートされたため、Javadoc コメントで参照するコードの部分を指定できるようになりました。 また、IDE が @snippet タグ内に外部スニペットを含められるようになったため、別のファイルやソースに格納されているコードスニペットを参照し、Javadoc ドキュメントに含めることができます。
複数のメンバーに特定のリファクタリングをまとめて適用する新しい方法を追加しました。 Project(プロジェクト)または Structure(構造)ツールウィンドウで複数のメンバーを選択すると、それらに対して Extract Delegate(委譲の抽出)、Extract Interface(インターフェースの抽出)、Extract Superclass(スーパークラスの抽出)、Pull Members Up(メンバーのプルアップ)、および Push Members DownPush Members Down(メンバーのプッシュダウン)を同時に呼び出せるようになりました。 また、IntelliJ IDEA が Encapsulate Fields(フィールドのカプセル化)、Move Static Members(static メンバーの移動)、Extract Delegate(委譲の抽出)、Extract Interface(インターフェースの抽出)、および Extract Superclass(スーパークラスの抽出)などの幅広いリファクタリングでマルチキャレット選択をサポートするようになりました。 この機能を使用するには、リファクタリングを適用する各メンバーにキャレットを置いてください。すると、IDE がリファクタリングダイアログ内でこれらのメンバーを自動的に事前選択してチェックします。
容易なスタックトレース解析とより迅速なバグの解決を可能にするため、行番号がない場合やずれている場合でも IntelliJ IDEA がレポート内にあるメソッドの場所を正確に推測できるようにしました。
IntelliJ IDEA が Java と Kotlin に含まれる SQL の連結と補間をより適切に解析できるようになりました。これにより、潜在的に安全でないクエリを検出し、関連する潜在的な SQL インジェクション脆弱性からコードを保護できます。
IntelliJ IDEA 2023.2 では開発エクスペリエンスの合理化に的を絞って Scala 3 のサポートを強化しています。 注目すべき改善点には、Scala 3 の列挙型に対するハイライト、列挙型の定義への移動操作、さまざまなコンテキストにおける列挙型ケースの正しい解決の修正が含まれます。 TASTy デコンパイラーが大幅に強化され、Akka、Cats、Play、ZIO などの一般的な Scala ライブラリを正確にデコンパイルできるようになりました。 また、scala-expression-compiler をデバッガーに統合することで、Scala 開発者のデバッグエクスペリエンスが向上しています。 その他の改善点には、Scala 3 の Universal Apply Methods の補完ヒントの強化、エディター内での IArray のサポート、「少ない波括弧」構文のサポートの改善が挙げられます。
このリリースには IntelliJ IDEA の sbt サポートへの改善が多数含まれています。 sbt に設定された環境変数はプロジェクトを開き直した後も破棄されずに正しく処理されます。 File(ファイル)| Settings(設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Build Tools(ビルドツール)| sbt の設定ページは使いやすく改良され、カスタム環境変数を sbt-shell プロセスに渡せるように新しい Environment variables(環境変数)フィールドが追加されています。
このリリースでは、ScalaDoc と Javadoc のクイックドキュメントがより近いものになるように調整されています。 宣言に表示されるアノテーション、キーワード、およびリテラルが選択されたテーマに合わせてハイライトされるようになっています。 拡張トレイトとクラスのリストが表示領域をはみ出す場合は複数の行に分割されます。 また、Scala 3 のキーワードがドキュメントでサポートされるようになりました。
新しいリリースでは、一部の複雑なケースか単に稀なケースで発生する無効な型推論に対する多数の修正が行われています。たとえば、型に複雑な境界が使用されている場合や sealed のトレイトの階層が明確でない場合、または複雑なパターンマッチングに含まれる場合などのケースが挙げられます。
Zinc のパフォーマンスが最近になって改善していることに注目し、バージョン 2023.2 ではこれをデフォルトのインクリメンタルコンパイラーにしました。 これにより、inline メソッドを含む新しい Scala 3 の機能のインクリメンタルコンパイルが包括的にサポートされます。
ターゲットフォルダーのサブフォルダーは管理対象になっていない限り、自動的にソースとして含まれなくなりました。 これにより、ソースコードを生成するプロジェクトの検索が高速化します。 また、IDE で sbt-projectmatrix のサポートが改善されています。
IntelliJ IDEA 2023.2 では、Run(実行)ツールウィンドウから直接 IntelliJ プロファイラーの機能にアクセスできるようになりました。 Profiler(プロファイラー)ツールウィンドウを開いたり、アプリケーションをゼロから開始したりしなくても、新しいボタンを使ってワンクリックで Attach IntelliJ Profiler(IntelliJ プロファイラーのアタッチ)や Capture Memory Snapshot(メモリスナップショットのキャプチャー)アクションを呼び出すことができます。
IntelliJ IDEA 2023.2 ではウォールクロックプロファイリングモードをデフォルトのオプションにすることで、プロファイリング体験を向上させました。 このプロファイリング手法ではメソッドでの待機時間を含む合計経過時間が考慮されます。 測定単位はミリ秒となっており、より強力で直感的なオプションとして注目されています。
Mono と Flux の値の評価 リアクティブアプリケーションをデバッグする際に Mono 型と Flux 型のウォッチとローカル変数の値を簡単に評価できるようになりました。 IDE がデバッグセッション中にこれらを検出して Variables(変数)ビューに対応する get または collectList リンクを提供するようになりました。そのリンクをクリックすると、Reactive Streams の項目を瞬時に計算できます。 デバッガーはデフォルトで Flux の最初の 100 項目を取得します。 この数は File(ファイル)| Settings(設定)| Languages & Frameworks(言語とフレームワーク)| Reactive Streams で構成可能です。
自動テスト機能を拡張し、Maven、Gradle、および JPS ビルドシステムに完全に対応させました。 また、継続的テストモードをより簡単に有効にできるようにしました。 有効にするには、Run/Debug(実行/デバッグ)ツールウィンドウにある新しい Rerun Automatically(自動的に再実行)ボタンを使用します。 変更内容が保存される際にはテストが自動的に実行されるため、コードの更新に関するフィードバックを瞬時に得られます。
IntelliJ IDEA で return ステートメントに直接ブレークポイントを設定するためのサポートが改善されました。これは、すでにラムダ式に行われていた対応と同様のものです。 この改善によってデバッグの精度が向上し、より詳細なコード解析が可能になったため、コードの動作や戻り値に関する有益なインサイトを得られるようになっています。 インラインブレークポイントを設定するには、ステートメントの横のガターを右クリックして return のオプションを選択します。
IntelliJ IDEA 2023.2 にはコードチャンクの特定部分を選択的にコミットできる待望の機能が導入されています。 部分コミットを実行するには、チャンク内の行を選択し、コンテキストメニューから Include these lines into commit(これらの行をコミットに含める)を呼び出します。 このチャンクは、選択した部分がハイライトされた状態で個別の行に分割されます。 チェックボックスかコンテキストメニューを使用して選択範囲に行を追加するか除外するかを指定できます。
IntelliJ IDEA 2023.2 には共有インデックスを素早く構築してアップロードするための新しいコマンドラインツールが追加されています。 チームワークを合理化し、ローカルでの大規模なプロジェクトのインデックス作成にかかる無駄な時間をなくすように設計されています。 新しいツールはチームの共有インデックスの生成プロセスを単純化します。複数のスクリプトやサービスを使用せず、わずか数回のクリックで完了できます。 詳細はこちらを参照してください。
IntelliJ IDEA2023.2 より、Windows Subsystem for Linux(WSL)で Tomcat にデプロイされたアプリケーションの実行とデバッグが可能になりました。 WSL で Tomcat ベースのアプリケーションを扱うには、JAVA_HOME 環境変数を /etc/environment または ~/.bashrc ファイルのいずれかで宣言する必要があります。
HTTP クライアントでトランスポート層セキュリティプロトコル(TLS)を使用して gRPC リクエストを送信できるようになりました。 TLS は暗号化と認証の機能を提供し、データ送信の機密性と整合性を確保します。 リクエストの構文では https:// と grpcs:// のどちらのスキーマもサポートされています。
IDE で Swagger Codegen 構成をセットアップする際のユーザーエクスペリエンスが改善されました。 ユーザーの要件に合わせて実行構成をカスタマイズしやすくするため、Edit Swagger Codegen Configuration(Swagger Codegen 構成の編集)ダイアログが改良されています。 また、ガターから直接 Swagger Codegen の実行構成にアクセスできるようになったため、追加の設定を指定する必要がなくなりました。
HTTP クライアントが Swagger と OpenAPI の仕様を理解し、JSON リクエスト本体に対応するコード補完オプションを提供できるようになりました。
IntelliJ IDEA が YAML ファイルや JSON ファイルを含む OpenAPI および Swaggeer 仕様ファイルの Redoc UI プレビューをサポートするようになり、Redoc と Swagger UI を IDE 内で切り替えられるようになりました。 Redocly を統合することで、IntelliJ IDEA 内から Try it コンソールにアクセスし、それを使用してパラメーターの設定や API へのリクエストの送信を行えます。
fetch() 呼び出しを使用している、または Axios ライブラリを参照しているコードなど、JavaScript コードにある JSON オブジェクトキーを補完する機能を IDE に導入しました。 現時点では Spring MVC サーバーエンドポイントがサポートされていますが、今後はさらに多くのサーバーフレームワークが追加される予定です。
IntelliJ IDEA 2023.2 では、インポートされたモジュールを使用して HTTP クライアントリクエストハンドラーの共通 JavaScript コードを共有できるようになりました。
IntelliJ IDEA で HTTP クライアントのリクエスト結果に含まれる PDF ファイルと HTML ファイルのプレビューを直接表示できるようになりました。
IntelliJ IDEA で HTTP クライアント CLI を使用して GraphQL API を操作し、サービスとの WebSocket 接続を確立できるようになりました。これは、テストや自動化スクリプトなどの目的に役立ちます。
新しい Spring Boot 実行構成をセットアップする際、VM options(VM オプション)フィールドで -D フラグの後に出現するキーを自動補完するオプションが導入されています。
IntelliJ IDEA 内で Spring のカスタム構成 Bean を扱う際のユーザーエクスペリエンスを合理化しました。 ユーザーが Spring Boot 構成アノテーションプロセッサをセットアップしなくても、IDE がプロパティと YAML 構成ファイルのコード補完と検証を行えるようになりました。
Spring アプリケーションで AspectJ を利用できるように IntelliJ IDEA のサポートを拡張しました。 IDE が Kotlin コードの解析と補完を行えるようになりました。これは Java コードですでに行われた対応と同じものです。
IntelliJ IDEA 2023.2 では、いわゆる「Norway problem」と言われる問題を解消し、YAML ファイルに含まれるブール値の意図しない解釈が起こるのを防ぐための新しいインスペクションが導入されました。 リストが主に文字列で構成されていてもブール型のようなリテラルを含んでいる場合、IntelliJ IDEA はそのリテラルをハイライトして潜在的な矛盾を示し、引用符を追加するように提案します。 リストがほぼブール型のようなリテラル(true、false、off、on、yes、または no など)で構成されている場合、このパターンから外れるすべてのリテラルは潜在的なエラーとしてハイライトされます。この場合、特定のクイックフィックスは提案されません。
IntelliJ IDEA で AsyncAPI 仕様の書式をかなり簡単に扱えるようにしました。 IDE はスキーマの検証機能をサポートしており、参照のコード補完、Endpoints(エンドポイント)ビュー、および Editor Preview(エディターのプレビュー)ペインを提供します。
Services(サービス)ツールウィンドウで Docker イメージレイヤーのコンテンツに簡単にアクセスしてプレビューできるようになりました。 リストからイメージを選択して Show layers(レイヤーの表示)を選択し、Analyze image for more information(イメージを解析して詳細を得る)をクリックします。 すると、レイヤーに格納されたファイルのリストが開きます。このリストにあるファイルを右クリックして Open File(ファイルを開く)(バイナリの場合は Download File(ファイルのダウンロード))をクリックすると、選択したファイルを簡単にエディターで開けます。
Docker の実行構成を Before Launch(起動前)タスクに指定することで、他の構成より前に実行するように設定できるようになりました。 IDE はその時点で稼働中のコンテナーが健全な状態になるのを待ってから次の実行構成を起動します。 Docker の実行構成をキューに入れるには、あらかじめ作成しておいた実行構成を Modify options(オプションの変更)| Add before launch task(起動タスク前に追加)| Run configuration(実行構成)で関連するコンテナーに追加します。
複数の kuberconfig ファイルを単一のプロジェクト内でセットアップできる新機能を導入しました。 これにより、同じプロジェクト内で複数のクラスターを処理したり、別々のクラスターの環境を操作したりするのが簡単になります。 ファイルをセットアップするには、File(ファイル)| Settings(設定)| Build, Execution, Deployment(ビルド、実行、デプロイ)| Kubernetes に移動します。
Services(サービス)ツールウィンドウで、Kubernetes クラスターのデプロイログを表示できるようになりました。 ツリーの Deployment(デプロイ)を右クリックしてから、コンテキストメニューの Follow Log(ログの追跡) または Download Log(ログのダウンロード)を選択します。
IntelliJ IDEA 2023.2 では、JavaScript と TypeScript の型エラーを表現する方法について改善を行ってきました。 エラーと警告がより可読性に優れた書式になり、コード内の問題を発見しやすくなります。 この書式はローカライズされたエラーを含むすべての TypeScript エラーと一部のごく一般的な JavaScript エラーに適用されます。
IntelliJ IDEA 2023.2は CSSネスティング をサポートしています。 構文のサポートに加えて、ネストされたセレクターが識別子や関数表記で開始していることを警告するインスペクションが実装されています。
Vue Language Server(VLS)、別名 Volar をサポートすることで、より正確なエラー検出とより適切な型情報の提供をクイックナビゲーションとドキュメントポップアップで実現しています。 デフォルトでは TypeScript v5.0 以降に VLS が使用され、それより前の TypeScript バージョンには TypeScript サービスのラッパーが使用されます。 Settings(設定)| Languages & Frameworks(言語とフレームワーク)| TypeScript | Vue では Vue サービスがすべての TypeScript バージョンで VLS 統合を使用するように設定できます。
Settings(設定)| Editor(エディター)| Live Templates(ライブテンプレート)| React hooks(React フック)に React フック用の新しいライブテンプレートセットが追加されています。 ライブテンプレートを使用するには、その短縮名をエディターに入力し、Tab を押して展開します。
IntelliJ IDEA 2023.2 では、あらゆる CI/CD パイプラインに適合するように設計された JetBrains の静的解析エンジンである JetBrains Qodana を完全に統合することによって静的解析ツールの構成が単純化されています。 この統合には 2 つの重要なメリットがあります。 1 つは簡単な構成を行えば、数回のクリックで解析をトリガーし、プロジェクト全体の問題を表示し、お好みの CI/CD システムにクオリティゲートをセットアップできることです。 もう 1 つは IDE を閉じなくても初期状態でサーバーサイド解析の結果を表示できるようになったことです。 Qodana と最新リリースについての詳細は、こちらのブログ記事をご覧ください。
Redis Cluster に接続し、スタンドアロンの Redis と同じ機能セットを使用できるようになりました。 クラスターに接続する際は必要な URL の前に jdbc:redis:cluster: を入力する必要があります。 この目的を達成するには適切な接続タイプを選択します。 クラスターへの接続に SSH トンネリングが必要な場合は、クラスター内にあるすべてのノードのホストとポートを URL に指定する必要があります。
バージョン 2023.2 ではスキーマの移行機能を改良しました。 同じオブジェクトがダイアログの両側で同じ行に配置されるようになったことが大きな変更点です。ターゲットスキーマで追加、除去、変更されるオブジェクトを把握しやすくなっています。
Data Editor and Viewer(データエディターとビューアー)設定ページに datetime 値を表示する必要のあるタイムゾーンを設定するための新しい Time zone(タイムゾーン)フィールドが追加されました。
共有データベースとそのコンテンツがイントロスペクションされるようになりました。 このようなデータベースが作成されるデータ共有もイントロスペクションの対象になります。
IntelliJ IDEAは最新のMavenのバージョンである Maven 4.0.0-alpha と完全に互換性があります。