IntelliJ IDEA 2021.1 の新機能

IntelliJ IDEA 2021.1 は Java 16 と WSL 2 を新たにサポートしており、Space との連携機能、Code With Me、IDE 組み込みの HTML プレビューウィンドウ、SSH ホストや Docker コンテナーでコードを実行するオプションなどの便利な最新機能を提供しています。 こちらの動画で概要を視聴するか、以下を読み進めて最も重要な変更内容を詳しく確認してください。

Space との連携機能

Space との連携機能

ソフトウェア開発とチームコラボレーション向けの新しいプラットフォームである Space との統合が初期状態で提供されています。 ウェルカム画面の右側にある、Get from VCS から JetBrains Space の組織に接続できます。 ログインが完了すると、プロジェクトリポジトリの表示とクローン、チームメイトが書いたコードのレビュー、Space Automation スクリプトの記述を行えるようになります。

WSL 2 サポート

UX 外部依存関係

Java プロジェクトでの WSL 2 のサポート

大変お待たせしました! IntelliJ IDEA で WSL 2 環境の Java プロジェクトを扱えるようになりました。 IDE が JDK インストール環境の検出、JDK のインストール、Maven / Gradle プロジェクトおよび IntelliJ IDEA のビルドシステムを使用するプロジェクトのコンパイルと実行に対応しました。

共同開発

Space との連携機能

共同開発およびペアプログラミング用のサービスである Code With Me が、IntelliJ IDEA で最初から使えるようになりました。 ビデオ通話と音声通話にも対応しているため、リモートコラボレーションがレベルアップします。 同僚に連絡を取りたい場合はいつでも JetBrains IDE から音声通話やビデオ通話を直接開始できます。 Code With Me は 1:1 の会議とグループセッションの両方で動作します。また、数十人の参加者を招待できます。 これらのアップデートに関する詳細は、ブログ記事を参照してください。

Run Targets

Space との連携機能

Run Targets 機能は、Docker コンテナー内またはリモートマシン上のアプリケーションの実行、テスト、プロファイリング、デバッグを可能にします。 現在、IntelliJ IDEA Ultimate では Java アプリケーションや JUnit テストのほか、Maven / Gradle / Micronaut / Maven ベースの Quarkus / Spring Boot の各プロジェクトを Docker / SSH / WSL ターゲットで実行できます。 詳細については、こちらのブログ記事を参照してください。

ユーザーエクスペリエンス

エディター の HTML プレビュー

組み込みの HTML プレビュー

新しい組み込みのブラウザープレビューを使用すると、HTML ファイルをすばやくプレビューできます。 プレビューを開くには、エディターの右上にあるウィジェットの IntelliJ IDEA ロゴアイコンをクリックしてください。 HTML やリンク先の CSS / JavaScript ファイルを変更すると、プレビューがその場で更新されます。

UX 外部依存関係

検索スコープに含める外部依存関係を調整可能

検索スコープをより詳細に調整できるようにしました。 スコープに含める、または除外する External Dependencies(外部依存関係)を設定できます。 External Dependencies のステータスを変更するには、Preferences/Settings | Appearance & Behavior | Scopes を開き、右側のボタンを使用します。

HPROF メモリビューアー

Windows で最近使用したプロジェクトにすばやくアクセス

Windows のジャンプリストに対応しました。タスクバーやスタートメニューの IntelliJ IDEA アイコンを右クリックし、最近使用したプロジェクトを開けるようになりました。

アクセシビリティの改善

JetBrains は、IDE をすべてのユーザーが難なく使用できるようにすることを優先事項の一つにしています。 このリリースでは、ウェルカム画面、Project Structure ビュー、VCS ログの UI 要素に付けるラベルの数を増やしました。 これらの要素やガターアイコンが、スクリーンリーダーが有効な場合に正しく読み上げられるようになりました。 また、macOS ユーザー向けのアクセシビリティ対応の改善にも取り組んでいます。

Windows のハイコントラストモードと IDE テーマの同期

Windows のハイコントラストモードを使用している場合、IDE の初回起動時にハイコントラストテーマが自動的に適用されるようになりました。

バージョン管理

プルリクエストのサポート

プルリクエストのサポートを改善

プルリクエストの作成時間を短縮しました。今後は Pull Requests ビューの + アイコンをクリックし、詳細を入力するだけで済みます。 ビューの一番上にある新しいタブには、プルリクエストに関するすべての情報が表示されます。 Files タブのファイルをダブルクリックすると、IDE がエディター内で差分を表示します。 また、プルリクエストの説明文を含むプルリクエストテンプレートにも対応しました。

Git コミットテンプレート

Git コミットテンプレートのサポート

IntelliJ IDEA は Git のコミットテンプレートをサポートします。 独自のコミットメッセージを作成したい場合は、テンプレートを使用して、重要だと思われる情報を入力できます。 IDE はその後、このテキストを初期コミットメッセージとして表示します。

コミット前インスペクション

コミット前インスペクションプロファイルの構成

VCS に変更をコミットする前にコードインスペクションプロファイルを簡単に選択できるようになりました。 歯車アイコンをクリックしてコミットオプションを表示し、Analyze code(コードの解析)チェックボックスにチェックを入れ、Choose profile(プロファイルの選択)をクリックしてから目的のプロファイルを選択します。 すると、IDE がそのプロファイルを使用してコミット前にコードのインスペクションを実行するようになります。

URL インレイヒント

別ブランチのファイルを取得

バージョン 2021.1 では、Compare with branch(ブランチと比較)ダイアログで別ブランチのファイルを取得できます。 取得したいファイルを選択し、Show diff(差分の表示)の横にある新しい下矢印アイコンをクリックするだけです。

ブランチに関する改善

シェルフに保存

新しい Save to Shelf(シェルフに保存)アクションを使用すると、変更をローカル環境に留めたまま、変更を Shelf(シェルフ)にコピーできます。 macOS では ⇧⌘A(Windows または Linux では Ctrl+Shift+A)を押してから ‘Save to Shelf’ と入力すると、このアクションにアクセスできます。

Perforce との連携

Perforce プラグインが IntelliJ IDEA Community Edition に完全対応し、IDE にバンドルされるようになりました。 The source code for this plugin is available on GitHub.

エディター

フォントの調整

フォントの太さを調整

長時間のコーディングでも難なく見ることのできるエディターフォントを選択することは重要です。 最近追加されたタイポグラフィ設定では、この選択が若干楽になり、個人に合わせて細かく調整できるようになりました。 バージョン 2021.1 では、主なフォントスタイルと太字のフォントスタイルの太さを Preferences / Settings | Editor | Fonts で微調整できます。

分割表示でのタブの最大化

分割表示でのタブの最大化

エディターを縦に分割するタブが複数開いている場合、その中のいずれかをダブルクリックしてエディターウィンドウを最大化できます。 ウィンドウをもう一度ダブルクリックすると、元のサイズに戻ります。

JSONPath のサポート

IntelliJ IDEA は Goessner または Jayway 構文を使用する JSONPath 式を新たにサポートしています。 JSON ファイルでは、Edit | Find から Evaluate JSONPath Expression(JSONPath 式の評価)を呼び出すと JSONPath にクエリを書き込むことができます。 JSONPath の記述部を含むファイルでは、同じ機能を使用して JSON 入力を追加すると、JSONPath クエリをテストできます。

JSON Lines のサポート

JSON Lines のサポート

IntelliJ IDEA has support for the newline-delimited JSON Lines format, which is used for working with structured data and logs. IDE は .jsonl.jslines.ldjson.ndjson のファイルタイプを認識します。

プロファイラー Ultimate

プロファイラーの UI を改修しました。 Home ウィンドウの情報量が増え、プロファイラーをより迅速にプロセスに接続できるようになりました。 また、アプリケーションの *.hprof スナップショットを取得する Capture Memory Snapshot(メモリスナップショットのキャプチャー)と、リソースの消費状況を追跡する視覚化ツールをタブで開く CPU and Memory Live Charts(CPU とメモリのライブチャート)の 2 つの新しいアクションを追加しました。これらのアクションは、実行中のアプリケーションを右クリックすると使用できます。

Java

Java 16 のサポート

IntelliJ IDEA は 2021 年 3 月にリリースされた Java 16 の基本的なサポートを提供しています。 このアップデートの中には、内部クラスが明示的または暗黙的に静的なメンバーを宣言して Stream.collect(toUnmodifiableList()) に変更する新機能も含まれています。現在、これは stream.toList() に変換されます。 IDE はストリームに対し、toList() 項目をコード補完リストの先頭に表示します。

データフロー解析用の新しいインスペクション

IntelliJ IDEA は、要素数が負の配列が初期化されている場合に警告を表示できます。 また、Arrays.copyOf() および Collection.toArray() メソッドを認識します。 さらに、IDE は Integer.longValueByte.intValue などの整数のアンボクシングや変換用のメソッドもサポートしています。

その他のインスペクション

for-each ループのパラメーターの型を絞り込むことで、不要なキャストを回避できるようになりました。 また、フィルターがマッパーによって生成されるものと同じ値を使用している場合に .filter() および .map() の呼び出しを入れ替えることで、コードの構文を単純化できるインスペクションを追加しました。 さらに、より多くのケースをカバーするため、StringBufferStringBuilder に置換するインスペクションが更新されました。

連鎖したビルダーメソッドのフォーマット

連鎖したビルダーメソッド用の新しいフォーマットオプションは、可読性の向上に役立ちます。 フォーマッターは、Chained method calls(連鎖メソッド呼び出し)ドロップダウンリストの Preferences/Settings | Editor | Code Style | Java | Wrapping and Braces で構成できます。 Builder methods(ビルダーメソッド)オプションを使用すると、IDE がビルダーメソッドと認識するメソッドのリストを作成し、各メソッドを別々の行に配置することができます。 Wrap first call(最初の呼び出しを折り返す)チェックボックスを選択すると、最初のビルダーメソッドも別の行に表示されます。 インデントの手動追加にも対応しています。また、Keep builder methods indents(ビルダーメソッドのインデントを維持)チェックボックスにチェックを入れると、IDE はインデントをそのままの形で残します。

Kotlin

Kotlin のハイライト処理を高速化

コード内の問題箇所をハイライトする処理を高速化

コードがその場で解析されるため、エラーや警告をかなり高速に検出できます。 旧バージョンと比較すると、IntelliJ IDEA 2021.1 は問題のあるコードをほぼ即座にハイライトするようになりました。 コード補完機能が高速化され、フリーズに対する IDE の応答性が向上しました。

Kotlin のハイライト処理を高速化

コード補完の改善

Kotlin のコード補完機能は、型パラメーターを要求する関数を提供します。 このような関数を選択すると、IDE は先行するコードに適切な型パラメーターを追加します。

コードカバレッジの改善

IntelliJ IDEA のコードカバレッジランナーが、インライン関数とコルーチンで Kotlin を完全にサポートするようになりました。

リファクタリングの改善

Change Signature(シグネチャーの変更)リファクタリングの UI を改修し、追加したパラメーターをデフォルトに設定するための新しいチェックボックスを追加しました。

Kotlin に関するデバッガーの更新

IntelliJ IDEA のデバッガーを使用すると、Kotlin の get 式を評価して結果を Variables ビューに表示できます。 また、そこからソースに移動することもできます。

Kotlin UML

Kotlin の UML クラスダイアグラム

UML クラスダイアグラムが JVM にコンパイルされる Kotlin に対応し、Java および Kotlin クラスの両方を表示できるようになりました。 近日中に他の Kotlin バックエンドに対しても UML ダイアグラムをサポートする予定です。

Scala

型の不一致がカインド型に対応

型の不一致がカインド型に対応

Scala 開発者は常に高カインド型を使用するとは限りませんが、使用する場合はスタイルを使用したがります。 型の不一致ツールチップがカインド型をサポートするようになりました。

機械学習を使ったコード補完

機械学習を使ったコード補完

このリリースでは、機械学習ベースで Scala のコード補完を行えるようにしました。 この機能は、Settings | Editor | Code Completion | ML | Scala で有効にできます。

コンパイルチャートのフェーズとユニット

モジュールに加えて、コンパイルチャートにフェーズとユニットを表示できるようになりました。このため、コンパイルに関するより詳細な情報を取得できるようになりました。 Build ツールウィンドウを開き、Chart ノードを選択してから希望する詳細度の Level を選択するだけです。

IntelliJ プラットフォームのプラグインテンプレート

IntelliJ プラットフォームのプラグインテンプレート

The sbt-idea plugin makes it possible to develop IntelliJ Platform plugins using Scala and sbt. また、開発をより簡単にする Project Wizard テンプレートが組み込まれています(この機能は Plugin DevKit を使用しています)。

ビルドツール

HPROF メモリビューアー

Maven プロジェクトをインポートする際に設定をカスタマイズする機能を復活させました。 このオプションを有効にするには、File | New Projects Settings | Preferences for new Projects | Build, Execution, Deployment | Build Tools | MavenShow settings dialog for new Maven projects(新規 Maven プロジェクトの設定ダイアログを表示)を選択してください。

フレームワークとテクノロジー Ultimate

プルリクエストのサポート

http:// を置換する新しいインスペクション

IDE が http:// プロトコルの使用箇所をハイライトし、https:// への変更を提案できるようになりました。 このインスペクションはデフォルトで有効になっています。 Preferences/Settings | Editor | Inspections | SecurityLink with unencrypted protocol(暗号化されていないプロトコルとリンク)で無視する URL のリストに URL を追加したり、プロジェクト全体またはその一部に対してインスペクションを無効にできます。

プルリクエストのサポート

HTTP クライアントの改善

HTTP クライアントからリクエストが実行されると、このリリースでの UI と UX の更新が盛り込まれた Services ツールウィンドウにレスポンスが表示されます。 返ってきた HTML / JSON / XML は折りたたみ可能で、その本文のコピー、行番号の非表示、表示フォーマットの選択が可能です。また、レスポンスの最上部と最下部にすばやくスクロールできます。

HTTP クライアントの SSL サポート

HTTP クライアントの SSL サポート

https:// プロトコルに SSL クライアント認証を使用する場合、HTTP クライアントの SSL 設定を構成できます。 そのためには、Add environment file(環境ファイルの追加)をクリックして Private を選択します。 IDE が SSL 構成を追加できるファイルを自動的に作成します。 このファイルでは、コード補完が役に立ちます。

Swagger UI のサポート

JVM フレームワークに対応した新規プロジェクトウィザード

Spring / Micronaut / Quarkus / MicroProfile プロジェクトの作成ウィザードを改修しました。 わずが 2 ステップで新規プロジェクトを開始できます! 基本的な情報はすべて最初の画面に適切にまとめ、2つ目の画面にフレームワーク固有の設定を表示するようにしています。 新しい UI はより洗練されており、より単純明快にプロジェクトを作成できるようになっています。

プルリクエストのサポート

JPA サポートの改善

JPA エンティティを含むプロジェクト用に、デザインを一新したアイコンをガターに追加しました。 このアイコンはクリック可能で、エンティティとその属性に対応した最も便利なアクションを含むリストを表示します。 また、Kotlin とマルチモジュールプロジェクト向けに JPA のサポートを改善しました。

Jakarta EE 9 対応の JPA コンソール

Jakarta EE 9 用の JPA コンソール

Jakarta EE 9 プロジェクトの JPQL クエリの記述と実行に、JPA コンソールを使用できるようになりました。

UML ダイアグラムの新カラースキーム

UML ダイアグラムの新カラースキーム

ライトテーマをご利用の方に朗報です。UML ダイアグラムをすっきりと読みやすくする新しいカラースキームが導入されました。

Swagger 関連の改善

Swagger は外部ファイル参照($ref)の仕様をサポートしています。 さらに、仕様ファイルの Structure(構造)ビューには SecurityCallbacksExamples を含む他のノードが表示されます。

Selenium ページオブジェクトの生成

IntelliJ IDEA が Web アプリケーションの DOM 要素を検出できる実験的なツールを新たにサポートしました。 このツールを使用する前に、Selenium UI Testing プラグインをインストールしてください。

この新しいツールには、Tools | Generate Selenium Page Object(Selenium ページオブジェクトの生成)からアクセスできます。 ダイアログが開いたら、Web ページのアドレスを入力し、任意の DOM 要素を選択してから下のエリアに追加してください。 そのエリアで、要素の言語やフレームワークを変更できます。 ページオブジェクトの生成機能は Java、Kotlin、Groovy のほか、Selenium、FluentLenium、Selenide、Geb、Atlas、JDI Light のようなフレームワークをサポートしています。

各フレームワークのコードテンプレートはカスタマイズ可能です。

Kubernetes Ultimate

リソースの高速削除

リソースの高速削除

ガター内の Run アイコンをクリックして Delete を選択するだけで、現在のコンテキストにあるすべてのクラスターリソースをエディターから削除することができます。

Kustomize 3.7.0 コンポーネントのサポート

Settings/Preference | Languages & Frameworks | Kubernetes で、Kustomize バージョンのドロップダウンリストから新しい Kustomize 3.7.0 を選択できるようになりました。

kind: List のサポート

kind: List のサポート

kubectl get <resource type> -o yaml コマンドの戻り値を処理したり、リソースをリストに配置したりする必要がある場合は、IDE が kind: List をサポートするようになりました。 リスト内の各リソースで、ラベル名の変更、コーディング支援、ガターアイコンによるナビゲーションを使用できます。 また、List をマルチドキュメントの YAML ファイルに変換できるようになりました(逆変換にも対応)。

Helm プロジェクトの非デフォルト値

独自の values.yaml ファイルを作成できるようになりました。 IDE は名前に “values” を含むファイルを values ファイルと認識します。 チャートテンプレートが使用する values ファイルを設定できるダイアログを開くには、コンテキストメニューから Configure Helm Parameters(Helm パラメーターの設定)、Helm LintHelm Template(Helm テンプレート) のいずれかを選択します。 また、このダイアログの Additional values(他の値)エリアに値を手動で貼り付けて追加することもできます。

Docker

実行/デバッグ構成の改善

Run/Debug Configuration(実行/デバッグ構成)ダイアログがより簡潔になり、さらに調整しやすくなりました。 必要なすべてのビルドオプションを追加するには、Modify options(オプションの変更)をクリックします。 実行オプションを追加するには、Modify(変更)をクリックします。 IDE は互換性を確保するため、それぞれのオプションを検証するようになりました。 また、Docker Compose に存在するすべてのオプションをサポートしています。 コード補完が、Dockerfile の Run OptionsImage ID or name に対して機能するようになりました。

BuildKit のサポート

BuildKit のサポート

プロジェクトのビルドを高速化する BuildKit のサポートを実験的に開始しました。 さらに、名前付きステージをマルチステージの Dockerfile から分離してビルドするのが簡単になりました。 ステージ名の横にあるハンマーアイコンをクリックするだけで、IDE が BuildKit を使用してイメージをビルドします。

マルチステージ Dockerfile での UI 改善

マルチステージ Dockerfile での UI 改善

マルチステージの Dockerfile を使用する際、ステージを折りたたんでステージ間に目立つ区切り線を表示できるようになりました。

Docker の実行停止

Docker の実行停止

Dockerfile の実行をすばやく停止できます。 Services ツールウィンドウを開き、実行中の項目を選択してからコンテキストメニューを呼び出し、Stop Deploy(デプロイを停止)クリックするだけです。

Docker マウントの環境変数とマクロ

Docker マウントの環境変数とマクロ

バインドマウントを使用する際、ホストマシン上のパスをよりすばやく入力できるようになりました。 補完メカニズムにより、Run/Debug Configurations(実行/デバッグ構成)の Bind mount(バインドマウント)オプションでマクロと環境変数を選択できます。

Dockerfile のイメージ補完

Dockerfile のイメージ補完

コード補完がイメージ名に対して機能するようになりました。

JavaScript Ultimate

Stylelint のサポート改善

Inspecting your CSS code with Stylelint is now easier. 数回クリックするだけで、この評価の高いリンターを使用して問題箇所を修正できるようになりました。 ファイル内の問題箇所にマウスカーソルを合わせるか、キャレットを配置したあと、Alt+Enter を押してから Stylelint: Fix current file(Stylelint: 現在のファイルを修正)を選択するだけです。 また、Preferences / Settings | Languages & Frameworks | Style Sheets | Stylelint の対応するフィールドで構成ファイルのパスを指定できるようになりました。

MDN ドキュメントのバンドル

MDN documentation is now bundled with IntelliJ IDEA. これによって MDN の Web サイトとの接続に関する問題を回避し、エディター内に HTML / CSS / JavaScript ファイルをより高速に表示できるようになります。 また、エディター内に表示されるドキュメントの情報がさらに拡充されました。例えば、JavaScript API のサポート対象ブラウザーバージョンに関する情報を確認できます。

スタイルシートのセレクターに関する詳細度

When working with style sheets, you can now check the specificity of your selectors – just hover over a selector that you want to check. あるいは、セレクターにフォーカスがある状態で F1/Ctrl+Q を押し、この情報をドキュメントポップアップに表示することもできます。

データベースツール Ultimate

以下の更新やデータベースツールに関するその他の更新に関する詳細は、こちらの新機能を参照してください。

権限付与用の UI

権限付与用の UI

オブジェクトを変更する際に権限を編集するための UI を追加しました。 データベースエクスプローラーのユーザーに対して Cmd/Ctrl+F6 で呼び出せる Modify user(ユーザーの変更)ウィンドウに、オブジェクトに対する権限を付与するための UI が実装されました。 これらの更新は、PostgreSQL / Redshift / Greenplum / MySQL / MariaDB / DB2 / SQL Server / Sybase に対応しています。

コンテキストライブテンプレート

コンテキストライブテンプレート

単純なステートメントをデータベースエクスプローラーから直接生成できる、ライブテンプレートというソリューションを導入しました。 独自のテンプレートを追加するか、SQL ノードPreferences/Settings | Editor | Live Templates で既存のテンプレートを編集できます。

データベースのコピーと貼り付け

操作の単純化

ナビゲーションを単純化しました。SQL のオブジェクトに対して Go to declarationCtrl/Cmd+B)を呼び出すと、データベースツリーではなく DDL に遷移するようになりました。 また、Select in database tree(データベースツリーで選択)アクションのショートカットを追加しました(Windows/Linux 用は Alt+Shift+B、macOS 用は Opt+Shift+B)。

データベースのソート処理の改善

ソート処理の改善

データのソート処理を改善しました。 新しい ORDER BY フィールドは、WHERE フィールド(以前は フィルター と呼ばれていたもの)と同様の動きをします。使用する句を入力して、それをグリッドのクエリに適用します。 クライアント側でソート処理を使用したい場合は(この場合、IntelliJ IDEA はクエリの再実行も現在ページ内のデータのソートも行いません)、Sort via ORDER BY(ORDER BY でソート)のチェックを外してください。 もう一つの更新は、デフォルトの状態ではソート処理を「重ねる」ことができなくなったことです。データをソートしたい列名をクリックすると、他の列を条件にしたソートは無効になります。

データベースのコピーと貼り付け

データソースのコピーと貼り付けが簡単に

世界一有名なショートカット(Ctrl/Cmd+C/V/X)でデータソースのコピー、切り取り、貼り付けを行えるようになりました。 データソースをコピーすると、クリップボードにコピーされた XML をメッセンジャーで共有することができます。 また、Paste(貼り付け)アクションを使用して別の場所から XML コードを貼り付けることもできます。 データソースの切り取りと貼り付けを 1 つのプロジェクトの中で行った場合は、単に移動されるだけです。パスワードは要求されません。 その他すべてのケースではパスワードが要求されます。

MongoDB のデータ編集

MongoDB のデータ編集

MongoDB コレクションのデータを編集できるようになりました。 ステートメントのプレビューも使用できます。 より柔軟な編集を行えるよう、UI からフィールドの型を変更する機能を導入しています。 この機能は、フィールドのコンテキストメニューか、値エディターのいずれかで実行できます。

その他

組み込みの共有インデックスのサポート

IntelliJ IDEA Community Edition は、一般に公開されている共有インデックスを組み込みでサポートしています。 専用のプラグインをインストールする必要はありません。 その代わり、IDE の共有インデックス機能を使用できます。

Android

IntelliJ IDEA がすべての Android Studio 4.1.1 のアップデートをサポートするようになりました。

bnd-maven-plugin のサポート

IntelliJ IDEA が bnd-maven-plugin から OSGi ファセットの設定をインポートできるようになりました。