IntelliJ IDEA 2019.2の新機能

Java

Java 13

IntelliJ IDEA は 新しい Java 13 Preview の機能を迎える準備ができました。IDE はアップデートされた Switch Expressions とそれらの新しいシンタックスに対応します。Java 13 でマルチラインブロックから値を返す必要がある場合、ブレークの代わりに yield キーワードを使うことができます。また、テキストブロックに関するサポートも追加しました。これにより、 HTML や SQL などのソースコードに、テキストのより長いマルチラインブロックを組み込むことができます。この機能を使うと、String にペーストする際に値をエスケープするか、またはテキストブロックにペーストする際にエスケープを除外して2つのフォーマットにペーストできます。

複数の exit ポイントでのリファクタリングメソッド

複数箇所にある return を1つの exit ポイントに変換するようにメソッドを変換してインラインメソッドリファクタリングに備えるという新しいインテンション(空気を読む機能)を追加しました。メソッドには複数箇所での return ステートメントを定義し、複数の exit ポイントを含むことができます。IntelliJ IDEA でこのようなメソッドをインライン化すると、メソッドから exit するために、1つのreturnステートメントの形式で1つの exit ポイントを定義するように変更可能です。

‘Constant conditions & exceptions’ は問題のソースコードをピンポイントで指し示します

古き良き ‘Constant conditions & exceptions’ インスペクションを ‘Find Cause’ と呼ばれる新しいアクションで補いました。潜在的または実際の課題を通知することに加え、インスペクションによってコードの疑わしい箇所に移動することができます。ファイルを読み、必要な行を検索する必要はもうありません。

コードから重複箇所を除去するインスペクションに対応 ULTIMATE

Java 用の ‘Duplicated code fragment’インスペクションと他言語用の‘Locate duplicates’ツールをマージし、両方の長所を兼ね備えた ‘Duplicated code fragment’ と呼ばれる強力で新しいインスペクションを提供します。設定可能で、リアルタイムで動作し、Java以外の多くの言語もサポートします。

補完ポップアップで入力ミスのパターンの修正を提案

IntelliJ IDEA 2019.2 では、コード補完ポップアップの見た目を変更し、よりお役に立てるようにしました。今後、補完は入力ミスのパターンを認識し、可能性のある修正案を提案してくれます。もし“retru” と入力してしまった場合、IDE は “return” との置き換えを提案します。

Structural Search で特定箇所を瞬時に表示

Structural Search は強力な機能で、プロジェクト内の特定のコードパターンを検索できます。IntelliJ IDEA はエディタで入力した検索にマッチする文字列をハイライトしてくれます。さらに、IDE では Structural Search ダイアログの編集エリアでフィルタリングした値が表示されます。パターンを試している間、継続的に検索を実行する必要はもうありません。

プロファイルングツール

IntelliJ IDEA はプロファイリングツールを提供 ULTIMATE

IntelliJ IDEA では Windows、macOS、Linux 上で Java Flight Recorder と連携し、IDE 内部のアプリケーションのパフォーマンスを分析できるようになりました。
macOSユーザー と Linux ユーザーは Async Profiler も利用できます。このツールはアプリケーションにおいてどのようにメモリやCPUが割り当てられているかについて全て教えてくれるので、簡単にベストフレンドになることができます。

サービス

サービスツールウィンドウ: 全ての接続、設定などのための単一のコントロールパネルに対応

コントロールする必要があるすべてのものが1つのビュー内にまとめられました。新しくなった Services ツールウインドウは最も便利なツールである RunDashboard、Database Console、Docker、Application Servers ビュー を凝縮、カプセル化しています。また1つのディスプレイと、実行/デバッグ設定やアプリケーション・サーバー、データベースコンソールなどの接続のための制御ポイントを提供しています。

実行中の Docker コンテナのファイルシステムの参照

IntelliJ IDEA 2019.2 では、Services ツールウィンドウ内の Docker ノードの File タブにおいて、実行中の Docker コンテナのファイルシステムを参照できるようになりました。

パフォーマンス

このリリースでは、ファイルシステムのリフレッシュのためのパフォーマンスと UI のレスポンスを改善し、ファイルシステム変更処理で発生する遅延がほとんどなくなりました。スタートアップパフォーマンスの最適化するために、どんなことでも実施してきました。IDE を起動するとすぐにその速さを感じると思います。

エディタ

ディレクトリ別にコードスタイルを設定できます

それぞれのフォルダで別々のコードスタイル設定を持てるようになりました。そうすることを想像してみてください。EditorConfig ファイルをモジュールまたはパッケージのルートディレクトリに配置すれば大丈夫です。
IDE は EditorConfig ファイルを通して、全てのコードスタイル設定を管理できます。適用されていることはプレビューで参照できます。そのため、今までのように盲目的に設定を変更する日々はこれで終了です。
より詳細はこちらをご覧ください。

20以上の言語のシンタックスハイライトに対応

IntelliJ IDEA では 20以上の異なるプログラミング言語について、設定等が不要なシンタックスハイライトを提供するために TextMate と連携しました。他の言語もハイライトをする必要がある場合は、 その言語をバンドルした TextMate をダウンロードし、IDEにインポートしてください。

‘Move Caret to Next Word’ アクションに設定が提供されました

キャレットをどこに配置するかを選択できるようになりました。現在のワードの終わり、または次のワードの最初のいずれかを選択できます。Settings/Preferences | Editor | General ページの Caret Movement 欄で、あなたにとってベストな挙動を選択してください。

Tab キーを使うとカッコまたはクオートの外側へ移動

より速く入力するためのもう一つの特徴として、追加の設定などはなくすぐに利用可能になることです。Tab キーを使ってクローズしているカッコまたはクオートの外側へ移動できるようになりました。この機能は入力中のみ動作します。
このオプションを無効化するには、Settings/Preferences | Editor | General | Smart Keys ページで ‘Jump outside closing bracket/quote with Tab when typing’ チェックボックスを無効にしてください。

選択されたコードはクオートまたは中カッコで自動的に囲まれます

以前からある機能ですが、今回からデフォルトで有効になりました。中カッコまたはクオートをタイプした際、IntelliJ IDEAは自動的に選択されたコードを中カッコまたはクオートで囲みます。
この機能があまり好きではない場合は、Settings/Preferences | Editor | General | Smart Keys ページで ‘Surround selection on typing quote or brace’ チェックボックスを無効にしてください。

macOS の新しいデフォルトキーマップに対応

macOS のためのデフォルトキーマップを Mac OS X から macOS 10.5+ に変更しました。また、キーマップの名前を変更しました。Mac OS X 10.5 は Default for macOS に名前が変わり、旧式の Mac OS X は IntelliJ IDEA Classic に変わります。

IntelliJ IDEA では大きいファイルもスムーズに動作します

IntelliJ IDEA では25MBを超えるファイルを容易に開き、退屈な待ち時間なしに検索できるようになりました。ログファイルを扱う方々にとっては非常に素晴らしい改善です。

外観

インスペクションポップアップに最も関連する修正案を表示

このリリースでは、コードインスペクションによって提案される修正案をより速く提供するようになりました。インスペクションポップアップは問題を表示するだけではなく、関連する解決策を直接表示するようになりました。修正をする場合は Alt+Shift+Enter を押下、または Alt+Enter で一覧から他のオプションを選択してください。

New Class ダイアログの見た目が新しくなりました

New Class ダイアログは見た目が新しくなりました。さらに、作成できるクラスのタイプをプレビューしてくれるようになりました。

Windows ユーザー用のインターフェイスが新鮮で上品な外観に

Windows 10 では IDE が新しくモダンでボーダーレスな見た目になりました。

プロジェクトビューでファイルサイズと変更時間を表示

新しいオプションを使用すると、プロジェクトで何が起こっているのかを把握しやすくなり、プロジェクトビューツリーのすべての項目のサイズと変更のタイムスタンプが表示されます。この機能を有効にするには View | Appearance | Descriptions in Tree Views メニューを選択してください。

エディタとデバッガータブの外観を統一

エディタとデバッガタブのデザインが変更され、Light テーマや Darcula テーマと同じ見た目になりました。Light テーマでは、ツールウィンドウヘッダの高さにタブの高さの位置を合わせました。また、タブ配下の白ラインを削除し、見やすくしました。

Find Usages ツールバーがよりエレガントに

ツールバーから人気のないアイコンを取り除く傾向を続け、見た目上のロード数を減らし、 Find Usages ツールウィンドウのツールバーをスリム化しました。いくつかのアイコンはグループ化され、いくつかは完全に削除されています。

Gradle

新しい依存関係ダイアグラム ULTIMATE

このリリースで待望の Gradle の依存関係ダイアグラムを追加しました。Gradle ツールウィンドウのShow Dependencies アイコンをクリックまたは Alt+Shift+Ctrl+U/Alt+Shift+Cmd+U を押下するだけです。隣接ノードを見るにはダイアグラムからノードを選択してください。どのようにルートへ接続されているかを見るにはノードをクリックしてください。

build.gradle ファイルに追加されたコーディング支援機能

2019.2より build.gradle ファイルをより簡単に編集できるようになりました。IntelliJ IDEA はタスク宣言のシンタックスとさまざまな依存関係の表記に対応し、コード補完を依存関係ブロックと依存関係設定のクロージャ内で提供します。

改善された Gradle タスク出力

Gradle 操作のステータスツリーと出力コンソールは同期/ビルドプロセスを監視するのに役立つよう並べて表示されるようになりました。このことでより詳細でおなじみの Gradle の出力情報が提供されます。

Gradle 設定の操作がより容易に

いくつかのオプションを廃止することによって、Gradle の設定ダイアログをシンプルにしました。さらに、Gradleプロジェクトを開いた場合、インポートした場合、作成した場合に IntelliJ IDEA が自動的に設定を構成してくれるようになりました。

Maven

Maven の同期出力がビルドツールウィンドウに表示

IntelliJ IDEA では Build ツールウィンドウで Maven のビルド出力と共に、Maven のインポートプロセスをレポートするようになりました。このことで進捗やエラーのレポートがより見やすくなり、移動も簡単になり、Gradle/Mavenのエクスペリエンスがより一貫性のあるものになります。

すぐに使える Maven 依存関係補完

pom.xml ファイルでの依存関係のためのコード補完は、追加の設定などはなくすぐに使えるようになりました。以前は Maven リポジトリのインデックスを作成をトリガにした場合にのみ機能していました。

バージョン管理

ignoreファイルの対応を完全にサポート

このリリースでは、Gitのための ignore ファイルの対応を追加しました。今後は追加の設定などはなくすぐに使え、サポートされている全バージョン管理システムに関する ignoreファイルの対応をご利用いただけます。

設定において、.gitignore ファイルの一覧にファイルを手動で追加する必要がなくなります。すべてがよりシンプルになりました。プロジェクトツリーまたは VCS ツールウィンドウの Local Changes タブのいずれかで無視するファイルのリストを追加できます。Git ignore や HG ignore を提供するために使われていた .ignore プラグインは VCS ignore の詳細な機能を提供するのみになり、メイン機能はプラットフォームの一部に入ります。

Local Changes タブからファイルのコミット

IntelliJ IDEA 2019.2 は Git や Mercurial を利用するプロジェクトに大きな変化をもたらします。ファイルをコミットするのに別のダイアログをオープンする必要がなくなり、Version Control ツールウィンドウのLocal Changes タブからコミットできるようになりました。コミットダイアログは IDE の他の部分をブロックすることはないので、変更したファイルをレビューし、必要に応じて変更を加えることもできます。

これを使うには、Settings/Preferences | Version Control | Commit Dialog の ‘Commit from the Local Changes without showing a dialog’ チェックボックスを選択してください。

Smart VCS 連携によるファイルコミットのリマインド

IntelliJ IDEA 2019.2 では、最近変更したファイルと一緒に以前にコミットしたファイルを修正するようリマインドするようになりました。

VCS 外部からコピーされたファイルを add するよう提案

IntelliJ IDEA は IDE の外部からプロジェクトにコピーされたファイル、またはバージョン管理内へコンソールで作成されたファイルまたはコード実行中に作成されたファイルを add するよう促します。また、このようなファイルを自動的に add するよう IDE を設定することも可能です。

VCS Log タブで表示する情報を選択

VCS Log タブで参照したいカラムを選択できるようになりました。瞳アイコンをクリックして ‘Show Columns’ を選び、author、date、commit hash など表示したいカラムを選択してください。

Git Merge と Cherry-Pick を UI から中断

Git Merge または Cherry-Pick を中断する際、ターミナルを開く必要はもうありません。処理が実行されている間、Abort Merge/Abort Cherry-pick メニューが Git Branches ポップアップに表示されるようになりました。

Show History は GitLog タブに結果が表示されるように

プロジェクトの変更を簡単に追跡できます。プロジェクトビューで選択したディレクトリ上で Git | Show History アクションを使うと、IDE はそれぞれのパスでフィルタリングされた結果を Log タブに表示します。
複数のフォルダでの変更を一度に参照することもできます。更新をチェックしたいフォルダで右クリックし、Git | Show History を選択してください。

Update Project アクション後のアップデート情報を Log タブに表示

以前は、Update Project と Pull アクションを使った際、IDE は Version Control ツールウィンドウの Update Info タブに更新されたファイルの一覧を表示していました。v2019.2 では、Update Info はアップデート中に受けたコミットの一覧として表示されます。Update Info タブは、Log タブのような表示になります。

ブランチ比較がより便利に

Git Branches ポップアップの ‘Compare with Current’ アクションは、2つの別々のアクションに分割されました。‘Compare with Current’ と ‘Show Diff with Working Tree’ です。アップデートされた ‘Compare with Current’ アクションはコミット内の差異を表示するようになりました。‘Show Diff with Working Tree’ アクションはファイルの差分を表示します。

Diff で修正されたコードのメソッドを表示

“Collapse Unchanged Fragments” モードの間、Diff では修正されたコードの現在のチャンク内のメソッドを表示します。このことで変更が見やすくなるだけではなく、コンテキストをより理解しやすくなります。

Kotlin

IntelliJ IDEA にバンドルされている Kotlin プラグインが v1.3.41 にアップデートされました。

JPA for Kotlin のコード支援機能 ULTIMATE

IntelliJ IDEA 2019.2は、Kotlin 用の JPA コーディング支援機能を幅広く備えています。Generate Kotlin Entities スクリプトを使用して、選択したテーブルに Kotlin エンティティクラスを生成できるようになりました。スクリプトは簡単にカスタマイズできます。Scripts Directory に移動し、特定のタスクを解決するためにスクリプトを修正してスクリプトを試してください。さらに、‘Go to Declaration’ アクション (Cmd+B/Ctrl+B) を使用して、IDE で一致する列またはテーブルに移動できます。

‘Async stack trace’ は最後の中断ポイントで状態変数を表示

中断関数または lambda 内のブレークポイントで停止すると、‘Async stack trace’ は最後の中断ポイントでの変数変数を表示するようになりました。現在の coroutine のを最後の中断ポイントから始まる中断関数のスタックトレース全体を参照し、変数の格納された値をチェックできます。このことは、現在の実行ポイントにどのように到達したかを理解するのに役立ちます。

スクラッチファイル用インタラクティブモードはその場で変化を表示

ご存じのとおり、Kotlinでは スクラッチファイルを使用してコードベースで小さな実験を実行できます。明示的にスクリプトを再実行する必要なく、特定のタイムアウト後にリアルタイムで結果を表示するインタラクティブモードを使用できます。

TODOリストで Kotlin の複数行コメントを表示

あなたのプロジェクトの TODO リストはどのくらいの頻度でチェックしますか?IntelliJ IDEA は、Kotlin 内の複数行のTODOコメントを正しくハイライトし、TODO ツールウィンドウにそれらをリストとして表示するようになりました。

誤った外部アノテーションを警告

Java の外部 nullability アノテーションを使う場合、Kotlin から注釈を付けられた Java メソッドの誤った用途について IDE は警告できるようになりました。これは純粋に IDE の機能であることにご注意ください。該当するコードは Kotlin コンパイラによって警告なしにコンパイルされ、IDE は追加の警告を表示します。

Groovy

Groovy 3.0 のシンタックスとネストしたコードブロックのサポートを拡張しました。さらに、IDE はクロージャ式の中カッコと矢印をデフォルトで太字にし、コードの構造を理解しやすくなりクロージャからのコードブロックを区別できるようになりました。
パラメータの型が明示的に定義されていない Groovy メソッドのメソッド宣言において、すべてのパラメータに明示的な型を追加するクイックフィックスを利用することもできます。

Scala

タイプミスマッチをハイライトする新しい方法

複数行にまたがる可能性のある赤い波線でタイプミスマッチエラーの下線を引く代わりに、タイプに起因するヒントを表示し、予想されるタイプにマッチしない部分をハイライトするようになりました。詳細はこちらをご覧ください。

タイプミスマッチのツールチップで差分を表示

タイプミスマッチのツールチップはきめ細かく垂直に配置され、2つの組の比較を表示するようになりました。このアルゴリズムでは、糖衣構文、派生、分散、その他の注意が必要な要素を利用しています。

タイプのヒントがインタラクティブに

タイプの注釈ヒントは動的な折りたたみやツールチップ、ナビゲーション、中カッコのマッチングをサポートするようになりました。タイプのヒントは本当に必要な場合のみ表示されます。

タイプする際にラップ/アンラップ

以前は、中カッコ内でラップ(またはアンラップ)するにはインテンションを使う必要がありました。今は IntelliJ IDEA はタイプする際に自動的に実施してくれるようになりました。

冗長なコードは目立たなく

IntelliJ IDEA は、未使用のインポートまたは到達不能コードを”冗長”(カラースキームで定義されていますが)としてマークするために常にグレーを使ってきました。しかしながら、他の冗長なコードが “一般的な警告またはエラー” としてハイライトされていたため、コードが汚染され、実際のエラーが隠されてしまっていました。今度は均一に、すべての冗長コードの色付けに灰色を利用するので、ハイライトは目立たなくなります。

改善されたコード補完

case 句全体を補完できるようになりました(今までは case 句のパターンを完成させることだけできました)。補完は一致するステートメントだけではなく、高い階層の関数でも機能します。

強化された言語インジェクション ULTIMATE

余白のある複数行の文字列リテラルに言語を注入できるようになりました。

Build Server Protocol が完全にサポートされました

IntelliJ IDEA は、Build Server Protocol (BSP) をサポートしました。ビルドツール (サーバー) とIDE(クライアント)がお互いに通信する方法を標準化します。しばらくの間は BSP サポートは実験的な機能でしたが、IDEの 一流市民となりました。

JavaScript & TypeScript

新しいインテンションで他の分解宣言と余分な変数を置き換え ULTIMATE

Alt+Enter で表示される 新しい ‘Propagate to destructuring declaration’ インテンションでは、可能な状況であれば別の分解宣言を余分な変数と置換できるようになりました。分解宣言を完全に排除するには、’Replace destructuring with property or index access’ と呼ばれるインテンションアクションを使ってください。
IDE は条件式内の boolean の表現に不要な箇所あれば警告し、シンプル化するよう提案してくれます。

強化された JavaScript のリネームリファクタリング ULTIMATE

JavaScript や TypeScript ファイルにおいてシンボルをリネームする際、IDE は動的な利用箇所も一緒にグループ化するようになりました。デフォルトではそれらをリファクタリングから除外します。このことでリファクタリングはより正確になり、Refactoring Preview ウィンドウで何を正確にリネームする必要があるかをより詳細に制御できます。

改善された Vue.js のサポートでよりよい補完 ULTIMATE

あなたの Vue.js アプリケーションでは Vuetify、BootstrapVue を使っていますか?IDE 内でこれらのライブラリを使って作業できるよう新しいアプローチを適用しました。今後、これらおよび他の Vue コンポーネントライブラリからのコンポーネントやそれらのプロパティのためのコード補完がより正確になります。

Node.JS が IntelliJ IDEA Ultimate にバンドル ULTIMATE

Node.JS プラグインは IntelliJ IDEA Ultimate でプレインストールされるようになりました。

データベースツール

Full-text Searchで包括的な結果を提供 ULTIMATE

正しいロケーションを知らなくても必要なデータを探すことができるようになりました。検索したいデータソースまたはデータソースのグループで右クリックし Full-text Search メニューを選択もしくは Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F を押下してください。結果はフィルタリングされ、データが見つかったた文字列のみが表示されます。カラムが多すぎてデータを探せない場合は、データエディタでテキスト検索を利用してください (Ctrl/Cmd+F)。

検索やナビゲーションでデータソースによるフィルタリングが有効に ULTIMATE

特に同じような項目がたくさんある場合、GoTo ポップアップ内でオブジェクトを検索するのは常に容易ではありません。IntelliJ IDEA 2019.2 では、特定のデータソースまたはソースのグループのどこを検索するのかを選択できるようになりました。同じことが Find In Path でもできます。このことは他のオブジェクトのDDL のソースコードを検索する際に非常に便利です。

 

JVM デバッガー

Step Into アクションで step into の方法を選択可能に

いくつかのメソッドを呼び出している行で ‘step into’ を実行した際、step into したい メソッドや lambda、またはメソッド参照を選択可能になりました。

シェルスクリプト

シェルスクリプトサポートを導入

このリリースでは、シェルスクリプトのためにワードやパス補完、クイックドキュメンテーション、テキストのリネームを含むリッチな編集を提供しました。またシェルスクリプト実行のための実行設定を作成することもできるようになりました。ここまででまだ半分のストーリーです。より進んだシェルスクリプトサポートのために IntelliJ IDEA にいくつかの外部ツールを連携しました。今後はスクリプト内でエラーを見つけて修正するために Shellcheck を使うことができます。また、Alt+Enter によって必要なコマンドのフルの表現を取得できる Explainshell も利用できます。

HTTP Client

HTTP クライアントが cURL リクエストをサポート ULTIMATE

cURL リクエスト文字列をHTTP クライアントにペーストし、IDE で自動的にそれをフルリクエストに変換してくれるようになりました。

HTTP クライアントがクッキーを保持 ULTIMATE

サービスにおいて認証を1回リクエストし、それに続くリクエストで追加の権限を必要とするいくつかのエンドポイントをコールしたとします。以前は、最初のレスポンスからクッキーを失う場合がありました。しかしもう必要はありません。IDE はすべてのクッキーを保持し、次のリクエストでそれらを送るようになりました。

 

ターミナル

Teminal のソフトラップの改善

以前は、Terminal で行をラップするとリンクの解除が時折発生する場合があり、いくつかの行は不適切にラップされていました。長い行をアウトプットするコマンドを実行する際、Terminal は優しくソフトラップするようになり、作業状態にあるリンクすべてをキープするようになりました。ラップされたリンクをクリックすると即ブラウザに送られます。

コマンドラインからファイルマージ用の Exit コード

IntelliJ IDEA はファイルマージ用のコマンドラインツールとして利用された際、適切な exit コードを返すようになりました。いかなるカスタムワークフローにおいてもマージツールとしてIntelliJ IDEA を利用できるようになりました。ブロック形式でターミナルからファイルを編集するためのコマンドラインオプション –wait にも対応しました。

 

プラグイン

プラグインページがより人間工学的に

IDE は Settings/Preferences ダイアログの Plugins ページでプラグインの詳細を表示するようになりました。このため、各種プラグインを1つ1つクリックする必要はありません。Updates タブは削除し、Installed タブ内のプラグイン名の近くに ‘Update’ ボタンを配置しました。歯車アイコン配下には新しいオプションを追加し、ダウンロードしたプラグインの無効化または有効化を一度に実施できるようにしました。たくさんクリックする時間をセーブし、より重要なことに時間を利用できます。

 

Kubernetes

Kubernetes プラグインがKustomize サポートに対応 ULTIMATE

Kubernetes プラグインを搭載した IntelliJ IDEA 2019.2 の新バージョンでは、Kustomize リソースファイルの多くの検査と同様に、キーとパスの補完のできる Kustomize の編集サポートが提供されます。リネームリファクタリングは、Kustomize リソースファイルのファイルとディレクトリのリネームのために機能するようになりました。Ctrl+B/Cmd+B ショートカットで、Kustomize リソースファイルで宣言されたパスから関連するパッケージまたはプロジェクトツールウィンドウのファイルにジャンプすることができます。

URLを利用して外部リソースを追加可能に ULTIMATE

URL を利用して、外部ソースからカスタムリソース定義 (CRD) をロードできるようになりました。仕様を追加するには Settings/Preferences | Languages & Frameworks | Kubernetes で CRD specification にURLを追加してください。(以前はローカルファイルから CRD を追加することはできました。)