IntelliJ IDEA 2019.1の新機能

テーマ

テーマのカスタマイズ

素晴らしいお知らせです! IntelliJ IDEA 2019.1はカスタムテーマを公式にサポートしています! 簡単に独自のテーマを作成できるようになりました! 詳細はこちら

すぐに体験できるように、新しいテーマをいくつか作成しました。 新しいテーマをダウンロードして、Appearance(外観)設定であなたのテーマとして選択することで、IDEをカスタマイズできます!  詳細はこちら

Java

Java 12 Switch式(プレビュー)のサポート

IntelliJ IDEA 2019.1は、Java 12のプレビュー機能であるJEP 325に準拠したSwitch式をサポートしています。

作業を開始しやすくするため、多数の新しいインスペクションとクイックフィックスを提供しています。 このIDEは、拡張された「switch」文または式に置き換え可能な「switch」文を検出することができ、この変換用のクイックフィックスを提供します。 また、このIDEは「switch」内の重複するブランチを検出し、それらをマージするためのクイックフィックスも提供します。 これは氷山の一角にすぎません。

詳細情報

Extract Variableリファクタリングの機能強化

「Extract Variable」リファクタリングが大幅に改善され、以前よりもさらにセマンティクスを維持するようになりました。 このIDEは、フィールド初期化子からでも変数を抽出でき、変数の抽出リファクタリングは、条件が重要であるときに、自動的に三項式を「if」に変換できます。 nullチェックまたは 'instanceof'チェックがある場合、その条件は重要であると見なされます。

三項式における正確な警告のハイライト

IntelliJ IDEA 2019.1は、三項式に対してより正確な警告を確実にハイライト表示します。 これは、null許容性違反が検出された条件のみを強調表示します(これまでは、単一のブランチでのみnull許容性に違反している場合でも、全体の三項式をハイライト表示していました)。

この新機能により、switch式でもより正確にハイライト表示されるようになりました。

数学演算の解析を改善

データフロー解析は数学演算の結果を追跡でき、この情報を使用して常に真または偽である条件を警告します。 また、乗算演算、剰余演算、ビット演算など、多くの数学演算に関する解析を改善いたしました。

ソースからのコンストラクタの純度の推定

IntelliJ IDEA 2019.1では、 @Contract注釈のサポートが改善されました。 自動的に、ソースからコンストラクタの純度を推論できるようになりました。

Javaスタックトレースから行内の適切な位置への移動

Javaスタックトレースをクリックすると、IDEはカーソル移動先の行内の正確な位置を決定しようとします。 以前は、対応する行の最初の列に移動するだけでした。

重複したswitch分岐の検出

IDEは重複したスイッチブランチを検出できるようになり、そのようなブランチをマージするためのクイックフィックスを提供してくれます。

Gradle

ビルドアクションと実行アクションをGradleプロジェクトごとにGradleにデリゲート

ビルドアクションと実行アクションをプロジェクトごとに、個別にGradleにデリゲートできるようになりました。 IntelliJ IDEAプロジェクトが複数のGradleプロジェクトで構成されている場合は、各Gradleプロジェクトに対してこのオプションを設定してください。 同じプロジェクトのテストランナーとアプリケーションランナーに、異なる値を設定することもできます。

IntelliJ IDEA 2019.1では新しいGradleプロジェクトの場合、ビルドアクションと実行アクションはデフォルトでGradleにデリゲートされます。

エディタから実行するGradleテストタスクの適切な選択

IntelliJ IDEA 2019.1では、テストの実行がGradleにデリゲートされる複数のGradleソースセットを持つプロジェクトのサポートを改善いたしました。 IDEは、特定のテストを実行する際に実行すべきタスクを正しく解決するようになりました。 複数のオプションを選択する場合、IDEはこの選択されたテストに対して実行可能なすべてのタスクのリストを提供します。

ビルドアクションがGradleかMavenにデリゲートされる場合にHotSwapが機能

Gradleにデリゲートされたビルドアクションでデバッグする際、HotSwapがトリガーされ、プロジェクトをビルドすることでクラスが再読み込みされるようになりました。

また、HotSwapはビルドアクションがMavenにデリゲートされた際にも機能します。

Maven

Mavenのビルド出力をBuildツールウィンドウに報告

利便性を追求し、Mavenのビルド出力はすべて、単一の場所(Buildツールウィンドウ)に表示されるようになりました。 RunまたはMessagesウィンドウでチェックする必要はなくなりました。 また、ビューを切り替えてビルド出力をログとして表示することもできます。

Mavenダイアグラムの改善

Mavenダイアグラムが強化され、新しいオプションで拡張されています。 「Show Conflicts/Duplicates」を使用して、競合および重複した依存関係を簡単に見つけられます。 ノードへのすべてのパスを表示するには、「Show Paths: Root -> Selection」をクリックします。

ノードの依存関係のみを表示する必要がある場合は、「Show Neighbors of Selected Nodes」を選択します。 また、ダイアグラムをボーダレスビューに切り替えることもできます。

バージョン管理

FixupとSquashアクションがVCSログに追加されました

VCSログタブのコンテキストメニューからFixupアクションとSquashアクションを呼び出すと、これらのアクションは正しいfixup! とsquash! コミットメッセージを使用してすぐにコミットを作成できます。

VCSログから直接ファイルの一部のみを選び出す機能

IntelliJ IDEA 2019.1では、VCSログにいる間にコミットから選択したファイルのみを選び出せるようになりました。 単にコンテキストメニューを呼び出して、“Apply Selected Changes” (選択した変更を適用)オプションを選択してください。

受信コミットと送信コミットの表示

ブランチポップアップで個々のブランチの受信および送信コミットの有無を確認するオプションが追加されました。 Preferences/Settings | Version Control | Git(環境設定/設定 | バージョン管理 | Git)で ‘Mark Branches that have incoming/outgoing commits in the Branches popup’(ブランチポップアップオプションで受信/送信コミットのあるブランチをマークする)オプションをオンにする必要があります。

削除された退避済みファイルは復元できます

最近削除されたファイルをすべて表示したり、便利な退避済みファイルを復元したりできるようになりました。 VCSツールウィンドウのShelfタブにある、新しい「Recently Deleted」ノードを使用するだけで実行できます。

部分的なGitコミット用の新しい「Uncheck all」チェックボックス

より便利にするために、Commit Changes(変更をコミット)ダイアログのDiffペインに新しい “Uncheck all”(すべてのチェックを外す)チェックボックスを追加しました。これにより、すべてのコードチャンクのチェックを一度に簡単に外せます。

VCS注釈用の作者のイニシャルを表示するモード

VCS注釈に作者のフルネームの代わりにイニシャルを表示できるようになりました。 注釈タブを右クリックして、コンテキストメニューから「View | Names | Initials」を選択してください。

Diff

ファイルコンテンツをドラッグアンドドロップで空のDiffウィンドウに追加

ファイルをドラッグして、空のDiffウィンドウにテキストをコピー&ペーストできるようになりました。

差分ビューアで比較対象ファイルの左右切り替え機能

「Compare two files(2つのファイルを比較)」、「Compare with clipboard(クリップボードで比較)」、または「Blank Diff(空白差分)」を使って差分ビューアを開いたときに左右に切り替えできるようになりました。 右側に表示されるファイルと左側に表示されるファイルを切り替えるには、「Swap Sides」を選択するだけです。

「Swap Sides」はディレクトリの比較でもご利用いただけます。

文字単位の差分プレビュー

これまでの差分ビューアのように単語単位だけでなく、文字単位でも差分を確認できるようになりました。 例えばソースコードに日本語など、さまざまなアルファベットの文字からなる行が含まれている場合に非常に便利です。

Recent Locations (最近の場所)ポップアップ

新しい “Recent Locations”(最近の場所)ナビゲーションポップアップをお試しください。これは、コード内で最近訪問した場所と変更した場所をすべて表示します。 このポップアップでは、アクセスした場所がすべて時系列順に並べられ、一番最近訪れた場所が一番上に表示され、最も以前に訪れた場所が一番下に表示されます。 新しい “Recent Locations”(最近の場所)ポップアップを呼び出すには、Cmd-Shift-E / Ctrl-Shift-Eを押してください。

JVMデバッガ

デバッガエバリュエータで、'synchronized'、 'assert'、 'switch'をサポート

デバッガエバリュエータは、 synchronized statements(同期文)、assert expressions(アサート式)、およびswitch statements(スイッチ文)をサポートするようになりました。

JVMデバッガでコードブロックからステップアウト

Javaプロジェクトをデバッグ中に現在のブロックからステップアウトできるようになりました。 この新しいアクションはメインメニュー | Runからご利用いただけます。

新しい「Run to mouse pointer」マウスジェスチャ

デバッグモードでマウスを使用したい場合は、行の上にマウスを移動するとIDEがこの行をハイライトし、次に行番号をクリックすると、IDEは「カーソル位置まで実行」アクションを行うようになりました。

Scala

for-comprehensionのハイライト

IntelliJ IDEA 2019.1ではエラーの強調表示、暗黙のヒント、GoTo / Quick Definition / Quick Documentationアクションなど、for-comprehensionのサポートが強化されています。

暗黙の使用箇所を検索

Find Usages(使用箇所を検索)は、暗黙の定義、メソッドの適用/適用を解除、for-comprehensionメソッド、および Single Abstract Method (SAM)(単一抽象メソッド)型に対して呼び出せるようになりました。

Javaにデコンパイル

Scalaの .class ファイルにソースがなくても、それらをJavaにデコンパイルできるようになりました。

カスタマイズ可能なScalafmtバージョン

IntelliJ IDEA v2018.2では、scalafmtフォーマッタのサポートが追加され、このリリースではこの機能を強化いたしました。 IntelliJ IDEAはカスタムScalafmtバージョンを使用できるだけでなく、IDEが必要なバージョンをダウンロードできるようにします。

HOCONプラグインの分離

HOCONサポートを別々のリポジトリとプラグインに抽出いたしました。それらは必要に応じてインストールしたり、アンインストールしたりできます。

エラー強調表示の改善

このリリースでは、次のような多くの範囲でエラーの強調表示が大幅に改善されました:

  • 部分的な統一と全般的な型変数の統一。
  • コンストラクタの強調表示、privateコンストラクタへの呼び出し。
  • Better-monadic-forコンパイラプラグイン: `implicit0`機能。
  • Kind-projector:値レベルの多相ラムダ。
  • Simulacrum:高アリティ型コンストラクタ

Groovy

Groovy 3.0のJavaスタイルのラムダ構文のサポート

IntelliJ IDEA 2019.1は実験的なGroovy 3.0の機能である、Javaスタイルのラムダ構文をサポートしています。 このIDEは、コード補完、強調表示、型推論などのラムダ構文の編集支援機能を提供します。 Groovyのインテンションとインスペクションは、ラムダ本文内でも正しく機能します。 フォーマットはJavaスタイルのラムダにも使用可能で、Javaスタイルのラムダもデバッグできます。

Kotlin

IDEにバンドルされたKotlinプラグインをv1.3.21にアップデート

パラメータなしで「main」を生成するライブテンプレート

Kotlin 1.3から、パラメータなしでmain関数を使えるようになりました。 このため、このリリースのIntelliJ IDEAでは「main」ライブテンプレートを使用して、パラメータなしでmainメソッドを作成できるようになりました。

デフォルトの「main」の略語は、新しいバージョンのmainメソッドを作成するようになりましたのでご注意ください。 複数の引数を渡す必要がある場合は、「maina」という略語を使用してください。

文字列変換の改善

「Convert concatenation to template」インテンションにより、各パラメータに対する不要な.toString()呼び出しを削除できるようになりました。

SAMをラムダとして匿名オブジェクトに変換するための新しいインテンション

SAMでラムダを使用して構造体を匿名オブジェクトに変換する必要がある場合は、この便利な新しいインテンションアクションを使用してください。

コルーチンコードを改善するためのインテンションアクション

コルーチンを扱う場合、IntelliJ IDEAは「Async」サフィックスを「Deferred」を返す関数に追加することを提案します。

JavaScriptとTypeScript

JavaScriptデストラクチャリング用の新しいインテンション

IntelliJ IDEA 2019.1は一連の新しいリファクタリングとインテンションを備え、JavaScriptやTypeScriptコードでデストラクチャリングを使用できるようにしています。

Promiseを使った関数をasync/awaitに変換するインテンション

.then() と .catch() 呼び出しを使用してPromiseを返す関数を、async/await構文を使用する非同期関数に変更できます。 このクイックフィックスを使用するには、関数名の上でAlt-Enterを押して、「Convert to async function」を選択します。 このクイックフィックスは、TypeScript、JavaScript、およびFlowでご利用いただけます。

CSSとHTMLのドキュメントがアップデートされました

CSSプロパティ、HTMLタグ、および属性(F1 / Ctrl-Q)用のクイックドキュメントに、MDNの簡単な説明が表示されるようになりました(最も一般的なブラウザとの互換性を含む)。

JavaScriptデバッガコンソールの改善

JavaScriptとNode.jsデバッグツールウィンドウの対話型デバッガコンソールが、ツリービューを使用してオブジェクトを表示するようになりました。また、CSSによるログメッセージのスタイル設定と、console.group()とconsole.groupEnd() を使用したグループ化をサポートいたします。 また、あらゆる種類のログメッセージを除外することもできます。

Docker

Dockerコンテナ内でデバッグする機能

Dockerコンテナ内で実行されているJavaアプリケーションにデバッガをアタッチできるようになりました。 このIDEでDockerfileから構築された、またはDocker compose(docker-compose.yml)を使用して作成されたコンテナ内でデバッグできるようになりました。

Kubernetes

外部リソースのサポート

IntelliJ IDEA 2019.1は外部リソースをサポートしています。つまり、外部リソースからカスタムリソース定義仕様を読み込めるようになりました。 現在、これはローカルファイルからのみ実行可能です。 仕様を追加するには、Preferences/Settings | Languages & Frameworks | Kubernetes に移動し、パスをカスタムリソース定義仕様に追加してください。

Helmリソースファイルでのチャート名の変更リファクタリング

Helmリソーステンプレートファイルのチャートで、Renameリファクタリングを使用できるようになりました。 このHelmリソーステンプレートファイルのサポートを有効にするには、Go Templateプラグインをインストールする必要がありますのでご注意ください。

エディタ

コードスタイル設定をJSONにエクスポートするオプション

コードスタイル設定がデフォルトの設定と一致する場合でも、すべてのコードスタイル設定をIntelliJ IDEAからJSONにエクスポートできるようになりました。 Preferences/Settings | Editor | Code Style に移動し、ドロップダウンメニューから「Export | IntelliJ IDEA code style JSON」のオプションを選択してください。

ファイルの種類に応じてソフトラップを有効にする機能

Preferences/Settings | Editor | General に移動し、Soft-wrap filesフィールドを使用して、ソフトラップを特定のファイルの種類に限定できます。

WindowsでのCtrl-Yキー入力用のキーマップ設定ダイアログ

Windowsで最初にCtrl+Yキーを使うと、キーマップ設定ダイアログが表示され、ショートカットを「Delete Line(行の削除)」か「Redo(やり直す)」のいずれかに割り当てるように求められます。

Sublime Textキーマップ

IntelliJ IDEAには継続的に新しい定義済みキーマップが追加されており、バージョン2019.1ではSublime Textのキーマップが追加されました。 Preferences /Settings | Keymap に移動し、キーマップドロップダウンメニューから「Sublime Text」を選択するだけです! IntelliJ IDEAでSublime Textのショートカットを使用できるようになりました。

VS Code Keymapプラグイン

定義済みのVS Codeキーマップを使用できるようになりました。このキーマップは個別のプラグインとしてご利用いただけます! このプラグインをインストールして、Preferences /Settings | Keymap でVC Codeキーマップを選択してください。

Groovy 3.0のJavaスタイルのラムダ構文のサポート

IntelliJ IDEA 2019.1は実験的なGroovy 3.0の機能である、Javaスタイルのラムダ構文をサポートしています。 このIDEは、コード補完、強調表示、型推論などのラムダ構文の編集支援機能を提供します。 Groovyのインテンションとインスペクションは、ラムダ本文内でも正しく機能します。 フォーマットはJavaスタイルのラムダでも利用可能で、Javaスタイルのラムダもデバッグできます。

Spring Cloud Stream

Spring Cloud Streamの編集サポート

IntelliJ IDEAは、構文の強調表示、インスペクション、クイックフィックス、コード補完(application.properties ファイルまたは application.yml ファイル内の値と参照用のバインダー名の補完を含む)など、Spring Cloud Streamプロジェクト用の豊富な編集支援機能を提供しています。

バインドされたProducerとConsumer間の移動

ガターアイコンを使用して、バインドされたConsumerとProducerのメッセージハンドラ間を移動できるようになりました。 ConsumerとProducerは「spring.cloud.stream.bindings」設定キーを介してapplication.propertiesかapplication.ymlファイルにバインドする必要があることに留意してください。

Thymeleaf

Thymeleafサポートの改善

‘th: replace’ と ‘th: include’ 属性で参照されたテンプレートフラグメントへ移動できるようになりました。 また、コード補完とRenameリファクタリングが、これらのインクルードされたフラグメントと置換されたフラグメントに対しても機能するようになりました。

データベースツール

Greenplum、Vertica、Apache Hiveのサポート。

IntelliJ IDEAはこれらの新しいデータベースをサポートします。

  • Greenplum -PostgreSQLに基づく分析データベース。
  • Vertica-大量のデータを処理するためのカラム指向のストレージ。
  • Apache Hive-データのクエリと分析を提供するためにApache Hadoop上に構築されたデータウェアハウス。

接続ダイアログの改善

接続ダイアログの外観を更新し、重要な設定をいくつか追加いたしました。 接続を確立するたびに実行するSQLクエリを「Startup script」フィールドに追加できるようになりました。 また、IDEが自動切断するまでのタイムアウトを設定したり、接続を維持するためにN秒ごとにクエリを実行する時間間隔を設定したりすることもできます。