IntelliJ IDEA 2022.2 には、リモート開発機能をより使い易く、安定化するための品質改善が複数含まれています。 IntelliJ IDEA バージョン 2022.2 は JetBrains Runtime 17 を使用しており、さまざまな面で IDE のエクスペリエンスとパフォーマンスが強化されています。 IntelliJ IDEA Ultimate には、Spring 6 と Spring Boot 3 の機能サポートが追加され、その他複数のフレームワークのアップデートが導入されています。 新しいバージョンには、以下に示すその他多数の注目すべきアップデートと改良が搭載されています。
IntelliJ IDEA 2022.2 では、リモート開発に多数の重要なアップグレードを導入し、より安定した使用感と豊富な機能を得られるようになりました。 新たにリリースされたアップデートでは、さまざまな品質面での改善が行われています。 ノートパソコンからリモートサーバーにインストールされた IntelliJ IDEA に SSH で接続し、円滑な開発者エクスペリエンスを得られます。 新しいバージョンで JetBrains Space を使用して効果的にバックエンドをオーケストレーションすると、直接 IntelliJ IDEA から開発環境を管理できます。 詳細については、このブログ記事を参照してください。
IntelliJ IDEA 2022.2 では、新しい@AutoConfiguration クラスや @ConfigurationProperties クラス、@ConstructorBinding を明示的に使用せずに構文をバインドする新しいコンストラクターなど、Spring 6 と Spring Boot 3 の機能が完全にサポートされています。 Spring 6 を試す場合や、プロジェクトをこの新しいバージョンに切り替える場合は、必ず IDE をアップデートしてください。
専用の実行構成を使用せずに単一のファイルの実行とデバッグを行いやすくするために、新しい Run Current File(現在のファイルの実行)機能を導入しました。Run/Debug ウィジェットで使用できます。 この機能を使用すると、現在開いているファイルを実行してデバッグできるほか、そのファイルに最適な実行構成タイプが IDE によって自動的に選択されます。
エディター内全体のフォントサイズを変更する新しいキーボードショートカットが導入されました。 フォントサイズを大きくするには、Alt+Shift+ピリオドを押し、 小さくするには、Alt+Shift+カンマを押します。 また、現在のフォントサイズとそれをデフォルトに戻すオプションを表示するフォントサイズのインジケーターが追加されました。
macOS 向けに、開いているすべてのプロジェクトウィンドウをそれぞれタブに変換し、1 つのウィンドウにマージして作業スペースを整理する機能を導入しました。 このアクションを実行するには、Window(ウィンドウ)| Merge All Project Windows(すべてのプロジェクトウィンドウをマージ)に移動します。
エディター内のインスペクションの表示方法を重要度レベルを変更せずに構成できるようになりました。 インスペクションのハイライトスタイルを変更するには、新しい Highlighting in editor(エディター内のハイライト)ドロップダウンメニューを使って設定できます。このメニューには、使用できるすべてのオプションが表示されます。
「リポジトリをクローン中」進捗バーが IDE のウェルカム画面に表示されるようになりました。プロジェクトリストに表示されるため、より明確で使いやすくなっています。
Add Mnemonic Bookmark(ニーモニックのブックマークを追加)ダイアログに Description(説明)フィールドが追加されたため、ブックマークのオプションの説明をすぐに追加できるようになりました。
Enter キーを押してブロックコメントの自動クロージャを無効にできるようになりました。 無効にするには、Settings(設定)/ Preferences(環境設定)| Editor(エディター)| Smart Keys(スマートキー)に移動し、Enter セクションの Close block comment(ブロックコメントを閉じる)チェックボックスをオフにします。
Code Completion Settings(コード補完設定)にアクセスし、コード補完ポップアップのケバブ(縦三点リーダー)メニューボタンから環境設定を構成できるようになりました。
ファイルが誤って明示的にプレーンテキストに関連付けられている場合、IntelliJ IDEA が間違ったファイル形式の関連付けについて通知し、直接エディター内でリセットすることを提案するようになりました。Settings (設定)/ Preferences(環境設定)でリセットを手動で行う必要はありません。
ドキュメントヘッダーに基づいて Markdown ファイルに目次を簡単に生成できるようになりました。 この新しいアクションは、Alt+Insert ショートカットか右クリックで呼び出せる Insert(挿入)と Generate(生成)ポップアップメニューから使用できます。 IDE は現在のキャレット位置に目次を挿入して <!-- TOC --> タグで閉じるため、後で同じメニューを呼び出して更新することができます。
Java インスペクションに広範な変更を導入し、潜在的なバグの追跡とコードの単純化を行いやすくしました。 たとえば、 Standard ‘Charset’ object can be used(標準の 'Charset' オブジェクトを使用可能)インスペクションが改善されており、.name() と .toString() が認識されるようになっています。 IDE がパターン変数によってフィールドが非表示になっていることを警告し、無意味な Objects.requireNonNullElse の呼び出しをキャッチできるようになりました。 JUnit に関連する多数の Java インスペクションが JVM インスペクションに変換され、Kotlin でも利用できるようになりました。 また、コード補完で適切な場合に .class リテラルが提案されるようになりました。
その他の Java 関連の改善内容については、ブログ記事をご覧ください。
最新の言語バージョンである Kotlin 1.7.0 で導入された機能のサポートを追加しました。 IDE が確実に非 nullableな型を正しくレンダリングして、オプトイン要件に対応した有用なインスペクションを提供するようになりました。
Kotlin デバッガーにデータフロー解析機能を統合して、true になる条件と実行されるブランチを示す DFA ヒントを表示するようにしました。 従来、この統合は Java のみで可能でしたが、Kotlin でもサポートされるようになりました。
バージョン 2022.2 より、IntelliJ IDEA のネイティブのビルダーがバンドルされている Kotlin コンパイラーを使用しなくなりました。 ローカルビルドも CI ビルドも、プロジェクト設定で指定されたバージョンの Kotlin コンパイラーを使って実行するようになっています。 この変更により、バンドルされているコンパイラーバージョンとプロジェクトのビルドファイルで定義されたバージョンの不一致が原因で発生していたローカルビルドと CI ビルド間の矛盾が解消されます。 詳細については、このブログ記事を参照してください。
最近行われたインデックスの最適化作業により、コードハイライト、補完、および使用箇所の検索について IDE の速度とパフォーマンスにかなり良い影響が出ています。
バージョン 2022.2 より、IntelliJ IDEA が .tasty ファイルから match タイプを読み取って適切に解析し、型変数を解決して型引数として使用できるようになりました。また、インスペクションがサポートされており、型をテキストとして表示できるようになりました。 その上、 オプションなしのエクストラクタ 、 タイプラムダ 、および 多相関数型 、 型レベルのコンパイラ内蔵 、および?をワイルドカードとして_と一緒にScala 2.13.9および2.12.16で使用するサポートを追加しました。 コピーペストされたコードのインデントも正しく設定されるようになっています。
IntelliJ IDEA 2022.2 では、return キーワードが匿名関数内で使用されていることを警告し、その関数内のすべてのコードを実行せずに終了するようになりました。 このような使用は一般的には意図的なものではないため、リークが発生する実装や表面化しないパフォーマンスの問題につながる可能性があります。 private または class パラメーターによってスーパークラス変数がシャドーされている場合、新しい警告が表示されるようになりました。 また、コンパイラーが許容しない方法で変数をオーバーライドしようとした場合にはエラーが表示されます。 これらの新しい警告は、対応するコンパイラーオプション(-Xlint:nonlocal-return および -Xlint:private-shadow)が存在する場合に表示されるように構成できます。
コレクションに引数または要素のリストがあるせいで極端に長くなっている行がある場合、ポップアップメニューの Put arguments on separate lines(引数を別々の行に配置)アクションを使用して、リストを複数行に素早く分割できるようになりました。 これと逆の操作も可能です。複数行のリストが十分に短い場合、Put arguments on one line(引数を 1 行に配置)アクションを使用して複数行を 1 つの行に変換できます。
リソースの使用状況を改善するため、コンパイラーベースのハイライトが調整されました。 IDE がユーザーが定義するファイルのハイライト設定を尊重するようになりました。 コンパイルがトリガーされるケースが減少したため、バックグラウンドスレッドの使用も減少しています。 コンパイルスコープは関連性のあるモジュールとソースのスコープに縮小されています。
Safe Delete(安全な削除)アクションは、ある要素を定義とそのすべての呼び出しから削除します。 このアクションが、型パラメーターでも動作するようになりました。
Groovy統合クエリ(GINQ)のサポートを追加しました。 IDE が Groovy 4 のこの機能に対応した構文ハイライト、コード補完、およびインスペクションを提供するようになりました。
IntelliJ IDEA 2022.2 では、システムのトラストストアから信頼済み SSL 証明書をインポートできるようになりました。 エンタープライズ環境に固有のカスタム証明書が自動的に使用されます。 ユーザー側の操作は不要で、すべて初期状態で機能します。
IntelliJ Profiler のアップグレードにより、スナップショットを収集しやすくなりました。 プロファイリングを開始すると、CPU と Heap Memory(ヒープメモリ)のライブチャートがコンソールと並んで表示されるようになっています。 そのため、アプリケーションから指定したプロファイル期間のスナップショットを多数収集しながら、アプリケーションのパフォーマンスを確認できます。
Flame Graph(フレームグラフ)、Call Tree(呼び出しツリー)、および Method List(メソッドリスト)で Kotlin インライン関数が他の関数と共に表示されるようになったため、CPU 時間を確認し、必要に応じて最適化できるようになりました。 この機能は現在、Linux と macOS で動作し、Start profiling(プロファイリングを開始)オプションのみを使用できます。 Windows サポートを追加できるように作業を勧めています。また近日 Attach(アタッチ)モードも追加する予定です。
Spring Framework 6 では、アノテーション付きのメソッドで HTTP クライアントを Java インターフェースとして定義することができます。 IntelliJ IDEA 2022.2 では、このようなインターフェースに対応した HTTP クライアントとの統合、URL 補完、およびナビゲーションを提供しています。
IntelliJ IDEA Ultimate で Spring Cloud Gateway URL に対応した URL 補完、Search Everywhere(どこでも検索)機能、および Find Usages(使用箇所の検索)のヒントを使用できるようになりました。 Endpoints(エンドポイント)ツールウィンドウを使用して、HTTP リクエストの生成やすべてのゲートウェイルートの検索を簡単に行えます。
IntelliJ IDEA 2022.2 では、Spring WebTestClient、RestAssured、WireMock、MockServer などの一般的な Java API を使ってテストする際に、JSON/XML の本体が自動的にハイライトされるようになりました。 そのため、これらのデータフラグメントの可読性が高まり、編集しやすくなっています。 また、テストでこれらの箇所の URL 補完と宣言への移動機能も使用できるようになっています。
IntelliJ IDEA 2022.2 は、GraalVM ネイティブイメージバイナリのデバッグを支援できるようになっています。 デバッガーを任意の GraalVM ベースの実行可能ファイルにアタッチするか、デバッガーがアタッチされた状態でアプリケーションを起動することができます。 Maven/Gradle プロジェクトでは、対応する実行構成が自動的に作成されます。 この統合は実験的であり、GraalVM の開発ビルドとこちらのプラグインがインストールされている必要があります。
.proto ファイルから生成されたコードとソース間を簡単に移動できるようになりました。 gRPC プラグインと Protocol Buffers プラグインの両方が有効であることを確認してください。
IntelliJ IDEA 2022.2 では、Spring Shell ライブラリで宣言された CLI コマンドが認識され、正確性がチェックされるようになりました。
IntelliJ IDEA が URL 補完、ナビゲーション、Find Usages(使用箇所の検索)で @ApplicationPath とサブリソースとして宣言された JAX-RS 共通ウェブサービス URL パターンを正しくサポートできるようになりました。
IntelliJ IDEA Ultimate 2022.2 では WebSocket 接続がサポートされており、リクエストの作成とメッセージの送受信を行えます。
IntelliJ IDEA Ultimate が初期状態で HTTP および WebSocket プロトコルを介して GraphQL クエリを送信できるようになりました。 http:// と https:// では単純な HTTP リクエストが使用され、ws:// と wss:// は WebSocket 実行プログラムに処理が委譲されます。
HTTP クライアントにいくつかの UI/UX 改善を実装しました。 まず、ガターのアイコンを使用して実行環境を選択できる便利な機能を導入しました。 この機能を有効にするには、Run with(実行)コンボボックスから Select Environment Before Run(実行前に環境を選択する)オプションを選択してください。 次に、Response(レスポンス)ビューに進捗バーを追加し、ダウンロードプロセスを追跡できるように改善しました。
JSON、YAML、および .properties ファイルでは、http:// と https:// で始まる値に Web 参照が自動的に挿入されるようになりました。 これらのリンクはワンクリックでウェブブラウザーで簡単に開けます。また、HTTP クライアントの Context Actions(コンテキストアクション)メニュー(Alt+Enter)からリクエストを生成することも可能です。
IntelliJ IDEA 2022.2 では、Java と Kotlin で Bean Validation アノテーションのメッセージ属性に対する参照と折りたたみ機能のサポートが追加されました。 メッセージキーの補完を使用するか、i18n の ValidationMessages.properties ファイルにある宣言に移動することができます。
メタデータスキーマを更新し、プロパティ補完を改善することで、AWS CloudFormation プラグインを改良しました。 更新されたバージョンのプラグインは、JetBrains Marketplace からインストールできます。
IntelliJ IDEA が新しい JPQL 構文、関数、型を含む Jakarta Persistence 3.1 の全機能をサポートし、それらの言語ハイライトとコード補完を提供するようになりました。
IntelliJ IDEA 2022.2 では、使用できるすべての Docker イメージとそのバージョンを検索できる Testcontainers API のイメージ補完を導入しました。 参照をクリックすると、ウェブブラウザーで対応する Docker Hub の URL が開きます。
新しい Copy Docker Image(Docker イメージのコピー)アクションを使用して、Docker デーモンから別の Docker デーモンにイメージを簡単にコピーできるようになりました。このアクションは、イメージをファイルに保存して、選択された接続にプッシュします。
IntelliJ IDEA 2022.2 が IDE の再起動後に Docker へ自動接続できるようになりました。 この新しい設定はデフォルトで有効になっており、Settings(設定)/ Preferences(環境設定)| Advanced Settings(高度な設定) | Docker で切り替えることができます。
IntelliJ IDEA バージョン 2022.2 では Colima と Rancher を統合することで、さらに多くのオプションで Docker デーモンへの接続を確立できるようになりました。
IntelliJ IDEA 2022.2 の Kubernetes プラグインでは、Kubernetes クラスターのサービスからの HTTP リクエストをインターセプトしてローカルで実行中のサービスにルーティングする目的で Telepresence ツールと統合できるようになりました。 このため、これらのサービスをデバッグをしてサービスの必要なサブセットのみをローカルで実行するのがより簡単になりました。
ウェブページ構造の UI が大幅に改善されました。 テキスト書式がハイライトされることで、タグ名、ID、適用先の CSS クラスなど、最も重要な箇所が読みやすくなりました。
ガターのアイコンをクリックするだけで、ページ要素に簡単に移動できるようになりました。
新しいページオブジェクトファイルを作成する際のウィザードにオプションの URL フィールドが追加されました。 ウェブアドレスが含まれている場合、ウィザードはリンクアドレスに基づくページオブジェクトのファイル名を提案します。 また、挿入された URL はページオブジェクトエディターが開く際に自動的に読み込まれます。
コードに新しいページ要素を追加する際に、追加されたコードブロックの終端にキャレットが自動的に移動するようになりました。そのため、コード内を簡単に移動して編集を続けられます。
既存のページオブジェクトクラスで作業中に新しい非参照ページオブジェクトクラスを入力する場合、未解決のコード警告のコンテキストメニューに移動して新しいページオブジェクトを作成するだけで、その警告を修正できます。
バージョン 2022.2 では、複数の CSV ファイルを選択してまとめてインポートする機能を実装することで、ファイルのインポート処理を強化しました!
Modify(変更)ダイアログの新しい UI がデフォルトのオプションになりました。 バージョン 2022.2 からは、この新しい UI を使用してテーブルのすべての子オブジェクトの追加と編集を行えます。 以前の UI は、引き続きコンテキストメニューから使用できます。
SQL スクリプトのデータベースオブジェクトをより正確に解決できるようにするため、Playground(プレイグラウンド)と Script(スクリプト)という 2 つの解決モードを実装しました。 前者はクエリ間での関連性がなく、特定の順序が適用されないクエリ一式である場合に最適なオプションです。 後者はクエリに順次ロジックがあり、単一のスクリプトとして実行する必要がある場合に適しています。
JetBrains は IntelliJ IDEA 2022.2 での Angular 14 のサポートに積極的に取り組んできました。 このリリースで追加された最も重要な機能は、Angular スタンドアロンコンポーネントのサポートです。 IntelliJ IDEA で、standalone: trueにマークされたコンポーネント、ディレクティブ、およびパイプが正しく認識されるようになりました。
IntelliJ IDEA 2022.2 では、Vue 3 のサポートが改善されました。 たとえば、v-if/else ディレクティブでの型の絞り込みを理解できるようになっています。 また、グローバルストアとして機能する、Vue チームが推奨する状態管理ソリューションである Pinia のサポートも改善されています。 Vue で Pinia ライブラリを使うことで補完と解決の両方が機能するようになったため、ストアに定義された状態プロパティとアクションに移動できるようになりました。
IntelliJ IDEA 2022.2 には、TypeScript 4.7 がバンドルされており、Node.js で moduleSuffixes や ESM といった新しい言語機能がサポートされています。 tsconfig.json ファイルで module が node16 または nodenext に設定されている場合、import ステートメントに自動的に .js 拡張子が挿入されます。 また、IDE は package.json ファイルの typesVersions フィールドをサポートしています。