IntelliJ IDEA の新機能

Java

コード補完の機能拡張

ストリームAPIでの補完チェーンはタイプキャスティング認識するようになりました。コード補完は、既存の呼び出しフィルタ(String.class::isInstance)に基づいて補完項目を提案するだけでなく、自動的に型キャストの補完項目を提案することもできます。

データ・フロー分析

データフロー分析を改善し、"より大きい"と "より小さい"のような変数間の関係を追跡できるようになりました。IDEは、変数が比較されるときに、すべての可能なコードパスで条件が常にtrueまたはfalseであることを検出します。

すでに含まれているのと同じ値に変数を代入しようとすると、IDEから警告が表示されます。これは、冗長なコードを検出してから削除できます。

データフロー解析は、非終了ストリームAPI チェーンで機能するようになりました。

IDEは不変なコレクションの変更についても警告します。

さらに学習する(英語)

欠落した ServiceLoader 宣言

IntelliJ IDEA 2018.1には新しいJava 9 インスペクションとクイックフィックスがあります。IDEは、ServiceLoaderによってロードされたサービスがmodule-info.javaファイルで宣言されていることを確認し、欠落したステートメントをmodule-info.javaファイルに追加するためのクイックフィックスを提供します。

さらに学習する(英語)

不足しているクラスの作成

module-info.javaでメンションされている解決されていないクラスの場合、IDEは欠落しているクラスの作成を提案し、エクスポートされていないパッケージも作成します。Java 9で空のパッケージをエクスポートすることはできないため、必要なディレクトリーにクラスを含むパッケージがIDEによって作成されます。

冪等性ボディ検出

IDEは冪等性ボディでwhileループを検出して警告します。ほとんどの場合、これはプログラミングエラーを示し、プログラムがハングアップする可能性があります。

無限ループのブレーク条件をループ条件に移動する

whileループでは、無限ループの最後または初めに条件付きブレークに関する通知を受け取ります。IDEはブレーク条件をループ条件に移すことを提案し、ループを修正するためのクイックフィックスを提供します。通常、条件付きブレークをループ条件に置き換えると、コードがより明確になります。

明示的に冗長なclose()コール

IntelliJ IDEAは、try-with-resourcesブロックの最後に、リソースの明示的に冗長なclose()呼び出しを検出するようになりました。

無限ストリーム検出

IntelliJ IDEAは、短絡していない無限のストリームについて警告します。そのような操作は、例外をスローすることによってのみ完了できます。このようなコードは、無限ループまたはメモリ不足の課題を引き起こす可能性があります。

フィールドが見つからないコンストラクターをコピーする

IntelliJ IDEA 2018.1では、クラスのすべてのフィールドをコピーしないコピーコンストラクターがある場合に通知を受け取ります。IDEは、一時的な修飾子を持つフィールドをコピーする必要がないと見なします。

配列の内容を並べ替える

新しいコンテンツをソートするアクションは配列初期化子とvarargsで利用できます。この新しいアクションは、コンテンツをアルファベット順にソートします。

ユーザー後置補完テンプレート

後置コード補完が改善されました。IDEでは、環境設定 | エディター | 一般 | 後置補完を使用して独自のJavaテンプレートを作成したり、定義済みのJavaテンプレートの一部を編集したり名前を変更したりできます。

インスペクション結果に一部修正

新しい部分的に修正するボタンがインスペクション結果ツールウィンドウの右側のペインに追加されます。選択したスコープ内で起こりうる問題を解決するためのオプションがいくつかある場合に表示されます。提案されているすべてのクイックフィックスは、部分的に修正するボタンのクイックフィックスタイプでグループ分けされています。この新機能により、必要なクイックフィックスを選択したスコープに適用し、影響を受けたすべてのケースを一度に修正することができます。

コード生成におけるテストプレフィックス

IntelliJ IDEAでは、インテンションアクションを使用してテストクラスを生成できます。IntelliJ IDEA 2018.1を使用すると、テストクラステンプレートをカスタマイズし、テストをプレフィックスとしてテストクラスを作成できます。環境設定 | エディター | コード・スタイル | Java | コード生成に移動し、テストクラス名の生成方法を選択します。デフォルトでは、テストを接尾辞としてテストクラスが作成されます。

JUnit 5 @Tag注釈のサポート

IntelliJ IDEA 2018.1はJUnit5 @Tag注釈をサポートするようになりました。これで、タグ付けされたクラスとタグ付きメソッドをテストスコープに含めることができます。実行 / Debug Configurationダイアログのtest kindフィールドで、Tags(JUnit 5)オプションを選択します。ユニークドフィールドを使用して、IDに基づいてテストをフィルタリングします。

JVMデバッガ

例外スロー

IntelliJ IDEA 2018.1には新しい例外スローアクションがあり、コードを変更せずにプログラムの特定の場所から例外をスローすることができます。これは、実行 | 例外スローメニュー、またはデバッグセッション中のフレームコンテキストメニューから利用できます。

スタックトレースをコンソールに記録する

IDEではブレークポイントのスタックトレースをコンソールに出力できるようになりました。スタックトレースオプションは、ブレークポイントダイアログボックスで有効にすることができます。IntelliJ IDEAでは、複数のブレークポイントスタックトレースを同時にコンソールログに記録することができます。

現在のスレッドのスタックトレースをコピーする

フレーム・コンテキスト・メニューから利用可能な新しいスタックのコピーアクションを介して、現在のスレッド・スタック・トレースをコピーできるようになりました。

非同期スタックトレースの注釈

IntelliJ IDEA 2018.1では、非同期スタックトレース機能を拡張し、@Async.予定@Async.Execute注釈を使用してデフォルト設定に含まれていないキャプチャーポイントを設定できるようになりました。Mavenアーティファクト(英語)を依存関係として追加するだけです。

Java コンパイラー

環境設定 | ビルド、実行、デプロイ | コンパイラー | Java コンパイラーJava コンパイラーページには、デフォルトで有効になっている新しいクロスコンパイルに--releaseオプションを使用する (Java 9 以降)チェックボックスがあります。Java 9で--source--targetオプションを使用し、同時にJava 9クラスにリンクする必要がある場合、このチェックボックスを無効にすることができます。

ECJコンパイラの特定のバージョンを使用することもできます。使用するコンパイラードロップダウンメニューからEclipseを選択し、選択したコンパイラでjarへのパスを指定します。

エディター

折りたたまれたコードの強調表示

コードで課題が検出された場合は、以前よりも迅速に課題を見つけることができます。IDEは、エラーまたは警告を含む折りたたまれたコード領域を強調表示し、そのブロックの色を検証ステータスに応じて色付けします。

折りたたまれたコード領域を検索結果で強調表示

また、IDEは、現在のファイルを検索するときに一致するものが含まれていると、折りたたまれたコード領域を強調表示します。

インライン外部注釈

IntelliJ IDEAでは、ソースコードの直接注釈が不可能であっても(ライブラリークラス)、外部の注釈でコードに注釈を付けることができます。ソースコードの外に保存されているannotations.xmlファイルに注釈を設定することができます。以前は、IDEは外部注釈付きコードの近くのガターの中に@アイコンしか表示していませんでした。IDEはこれらの外部注釈をコード内にインラインで表示します。

推定注釈ヒント

IntelliJ IDEAでは、@NotNullまたは@Nullable注釈の自動推論をソースコード内で(以前のように推論された注釈の近くのガターアイコンだけでなく)表示できるようになりました。環境設定 | エディター | 一般 | 外観推測された注釈をインラインで表示するチェックボックスを有効にできます。

プロジェクト構成

クラスパスに“provided”依存関係を追加する

アプリケーションSpring Bootの設定では、新しい“Provided”スコープに依存関係を含めるチェックボックスが実行/デバッグ構成に追加されます。あなたのプロジェクトでのスコープの提供の依存関係を持っている場合は、この新しいオプションは有用であろうが、( 提供依存関係がコンテナーによって供給されている)コンテナー内のアプリケーションの両方を実行して依存関係が自動的に提供されていないコンテナー(外)。

Spring Bootアプリケーションの場合、“Provided”スコープに依存関係を含めるオプションはデフォルトで有効になっています。

新しいモジュール名変更...アクション

IntelliJ IDEAを使用すると、複数のモジュールの修飾名を一度に変更できるようになりました。これは、プロジェクト構造ダイアログのコンテキストメニューから、新しいモジュール名を変更...アクションを介して実行されます。

検索および置換

構造検索の強化

IntelliJ IDEA 2018.1では、構造検索を使用して注釈付きメソッドへのメソッド呼び出しを見つけることができます。既存の検索テンプレートから選択することも、独自のテンプレートを作成することもできます。

パス内置換の改善

IntelliJ IDEA 2018.1には、プロジェクト内の置換ダイアログで正規表現置換をプレビューする機能があります。

Kotlin

IDEにバンドルされているKotlinプラグインがKotlin 1.2.30(英語)に更新されました

Kotlinコードをパッケージに貼り付ける

プロジェクトツールウィンドウでは、コードフラグメントを直接パッケージに貼り付けることができ、IDEは貼り付けられたコードで新しいKotlinファイルを作成します。

スコーピング関数呼び出しを変換するインテンション

Kotlinプラグインは現在のスコープの関数呼び出しを聞かせて、お互いに実行するだけでなく、またに適用し、その逆の変換新しいインテンションを提供しています。

Groovy

新しい@CompileStaticリファクタリングアクションに変換

これで、Groovyにコードを保存し、同時に静的コンパイルの恩恵を受けるときに非常に便利な新しいアクションがあります。既存のGroovyコードからの移行時間を大幅に節約するために、この新しいリファクタリングでは、スコープ内のすべてのGroovyクラスに@CompileStatic注釈を使用して注釈を付けます。

この新しいリファクタリングアクションは、コンテキストメニュー リファクタリング | @CompileStatic に変換から利用できます。

さらに学習する(英語)

不要な import エイリアス

IntelliJ IDEA 2018.1は、Groovyファイルの不要なインポートエイリアスを報告します。この新しい警告は静的インポートでも機能します。

Scala

インラインヒント

エディターは、パラメータ名、メソッドの結果の型、および変数の型のインラインヒントを表示できるようになりました。また、このようなヒントを表示するときに、設定を簡単にカスタマイズすることもできます。

構造ビューの改善

構造ビューは、コードに関するより多くの情報を表示するようになりました。 final , abstract とアクセス修飾子、ネストされた定義、プライマリーコンストラクタータイプ、メンバーとしてのケースクラスパラメーターなどを表示します。構造ビューは、継承されたすべてのメンバーを元のクラスとともに表示するオプションも提供します。

リファクタリング: インライン関数のパラメータ

リファクタリングでは、パラメータを使用して関数をインライン展開することができます。実際の値で正しく置換されます。

Android

IntelliJ IDEA 2018.1はAndroid Studio 3.0からの変更をマージし、次の主要な新機能を含む数十の新機能を含みます

レイアウトエディターの改善

レイアウト・エディターが改善されました:新しいツールバーレイアウトとアイコン、コンポーネントツリーのレイアウトの更新、新しいエラーパネルなどがあります。

新しいプロファイリングツール

IntelliJ IDEA 2018.1には、アプリのCPU、メモリ、ネットワークアクティビティのリアルタイムデータを提供する新しいプロファイリングツール群Android プロファイラーが含まれています。

デバイスファイルエクスプローラーツールウィンドウ

新しいデバイスファイルエクスプローラーツールウィンドウは、Androidデバイスまたはエミュレータのファイルおよびディレクトリー構造を表示します。このツールウィンドウを使用して、Androidデバイス上のファイルを表示、コピー、および削除します。表示 | ツール・ウィンドウ | デバイス・ファイル・エクスプローラーからアクセスできます。

インスタントアプリケーションを構築する

IDEは現在、インストールせずに実行できるインスタントアプリ軽量Androidアプリケーションを構築する機能をサポートしています。インスタントアプリの構築を開始するには、インスタントアプリ開発SDKがインストールされていることを確認してください。環境設定 | 外観 & 振る舞い | システム設定 | Android SDKにはどのSDKツールがインストールされているかをSDKタブで確認できます。

Spring Boot

エディターから新しいRESTクライアント経由でHTTPリクエストマッピングにアクセスする

今度は、Spring Boot Webアプリケーションを実行すると、HTTP 要求の受信を処理する@RequestMapping注釈を持つメソッドの新しいアイコンがガターに表示されます。このガターアイコンをクリックすると、拡張子が.httpのスクラッチファイル内のすべてのマッピングが開き、新しいREST クライアントを介してエディターでHTTP 要求が実行されます。

@GetMapping注釈を持つメソッドの場合、ブラウザでマッピングされたURLを開くか、HTTPリクエストエディターでリクエストを開くかを選択できます。

spring-boot-starter-actuatorの依存関係をpom.xmlまたはbuild.gradleファイルに追加する必要があることに注意してください。

アプリケーションコンテキストに登録されたBeanの新しいガターアイコン

IntelliJ IDEAは、実行ダッシュボードBeanタブ(または実行ツール・ウィンドウ)のアプリケーションコンテキストに登録されているすべてのBeanを表示します。この機能を拡張しました。この情報はエディターでも利用できるようになりました。実行時に使用されるBeanの隣に、新しいガターアイコンが表示されます。

これらの新しいガターアイコンをクリックして、依存するBeanに移動します。

バージョン管理

部分的なGitコミット

IntelliJ IDEA 2018.1は、部分的なGitコミットをサポートしています(git add -p)。IDEでは、コードチャンクを変更リストに関連付けることができます。変更リストを作成し、必要なすべてのコードチャンクをそこに配置してから、コミットします。IDEはファイルから選択された変更のみをコミットし、他のすべての変更をスキップします。コードチャンクをコミットに追加するには、変更のコミットダイアログの差分ペインにあるガターのチェックボックスを使用します。

コードチェンジを変更リスト間で移動するには、変更のコミットダイアログの差分ペインのコンテキストメニューから別の変更リストへ移動...アクションを使用します。

または、ガター内の変更マーカーをクリックして、エディターから変更リストにコードチャンクを追加します。

ディレクトリー、モジュール、またはリポジトリによるローカル変更のグループ化の切り替え

IntelliJ IDEA 2018.1を使用すると、ディレクトリー、モジュール、またはリポジトリに従ってグループ化してローカル変更を表示する方法を選択できます。バージョン管理ツール・ウィンドウローカルの変更タブにある新しいグループ化アイコンを使用してください。必要に応じて、グループ化オプションの1つを選択するか、3つすべてを同時に選択できるようになりました。

コミットハッシュをクリックしてナビゲートする

コミットの詳細ペインのログタブには、参照しているコミットのハッシュが強調表示されるようになりました。コミットハッシュをクリックするだけで、ログタブでそのコミットにジャンプできます。これはGitMercurialで有効です。また、ログタブのコミット詳細ペインが再設計されました

リビジョンタブ拡張の履歴

IntelliJ IDEAでは、ログタブ(Git統合で使用可能)のファイル上でリビジョンの履歴を表示するアクションを呼び出すことにより、ファイルの変更に関する詳細情報を表示することができます。2018.1では、改訂履歴タブをリフレッシュしました。これで、はるかに高速に動作します。パフォーマンスの向上に加えて、このタブには、ログタブに似た最新のUIがあります。

リポジトリーのクローン

さらに、GitGitHubリポジトリーのクローンダイアログが1つに統合されました。

GitHubリポジトリの自動補完は、新しいリポジトリーのクローンダイアログでも機能します。Github にログインをクリックしてGitHubアカウントにログインするだけです。

コミットおよびプッシュ... アクションの新しいショートカット

IDEには、変更のコミットダイアログからコミットおよびプッシュ…アクションを実行するための新しい既定のショートカットがあります。Alt + Cmd + K (macOS)またはAlt + Ctrl + K (WindowsとLinux)を使用してください。

Git ブランチポップアップ

進行中のリベースプロセスがある場合、リベースを中断リベースを続行、およびコミットをスキップアクションがGit ブランチポップアップから利用可能になりました。

ユーザー・インターフェース

新しいドキュメントUI

クイック・ドキュメントのポップアップを更新し、それをより明確かつよりコンパクトにしました: メソッドのパラメータ、型、および戻り値の型に関する情報が、Java、JavaScript、およびTypeScriptで更新されたクイック・ドキュメントポップアップで利用できるようになりました

より良いHiDPIサポート

Windows 8.1(またはそれ以上)でIntelliJ IDEA 2018.1を実行すると、IDEのモニタごとのDPI対応モードが開始され、モニタの小数スケールファクタのサポートが実装されます。以前は、IDEでサポートされていたのは積分スケールファクタだけでした。デフォルトモードに戻すには、VMオプション -Dsun.java2d.uiScale.enabled = false を設定する必要があります

JavaScript & TypeScript

TypeScriptの改善

IntelliJ IDEAは、最新のTypeScript 2.7機能をサポートし、メンバーを実装する動作を改善し、未解決のプロパティーに対して新しいタイプガード付きサラウンドクイックフィックスを追加しました。

新しいVueプロジェクトを作成する

IntelliJ IDEAにVue.js(英語)プラグインをインストールすると、Vueアプリをscaffold するための公式ツールであるVue CLIを使用して、新しいVueプロジェクトを作成できます。Vue CLIをインストールするには、ターミナルでnpm install --g vue-cliを実行します。

Prettier で再フォーマット

IntelliJ IDEAは、Prettier(英語)プラグインを介して意見を述べたコードフォーマッタであるPrettier(英語)をサポートしています。よりきれいなパッケージをインストールした後、新しいPrettier で再フォーマットアクションがIntelliJ IDEAで利用可能になります。Prettierを使用して、選択したコード、ファイル、またはディレクトリー全体をフォーマットすることができます。

Hunspell

Hunspell辞書のサポート

Hunspell辞書サポートを提供するHunspellプラグインは、IntelliJ IDEAと互換性があります。Humspellは単語の単純なリストと比較して、はるかに少ない偽陽性を伴って、はるかに高速かつより正確な誤検出を提供します。

さらに学習する(英語)

Docker

Docker composeの機能拡張

Dockerプラグインは、複数のDocker Composeファイルをサポートし、docker-compose.ymlだけでなくオプションのdocker-compose.override.ymlファイルも考慮します。ベースコンフィギュレーションファイルの直後に、他のオーバーライドファイルと同様にdocker-compose.override.ymlを追加することができます。

Docker composeサービス

Dockerプラグインを使用すると、Docker-compose実行構成でコンフィギュレーションファイルを選択した直後に実行するサービスを選択できます。

このプラグインは、Docker-Compose実行構成を介して配備されたものだけでなく、既存のすべてのプロジェクトを作成するを表示します。

Kubernetes

YAML Kubernetesリソースファイルのサポート

新しいKubernetesプラグインは、v1.5から最近リリースされたv1.9までのKubernetesのリソースファイルをサポートします。新しいプラグインは、ファイル内にこの種のapiVersionやその他のフィールドが存在するかどうかを調べ、存在する場合はKubernetesのリソースファイルと見なします。

さらに学習する(英語)

YAML Kubernetesリソースファイルの完成

Kubernetesに必要なYAML定義ファイルを実際にすばやく作成するために、必要なキーを入力してスマート補完を起動します。新しいプラグインは、以下のすべてのレベルから必要なすべてのキーを自動補完します。

コード補完は現在、YAML Kubernetesのリソースファイルで動作します。Kubernetesプラグインは、リソース内で使用できる正しい値を提供します。

Kubernetesライブテンプレート

Kubernetesプラグインにはライブ・テンプレートが組み込まれており、必要な種類のYAML Kubernetesのリソースファイルをすばやく作成することができます。新しいプラグインにはいくつかの定義済みのKubernetesテンプレートが含まれており、省略形を入力して必要なライブ・テンプレートを呼び出すことができます。

YAML Kubernetesファイルのナビゲーション

ガターアイコンを使用して、ラベル定義とラベルセレクタをすばやく移動できます。

キーと値の両方にラベルに直接一致するものがある場合は、ラベルセレクタからエディター内のラベル定義にジャンプします。

YAML Kubernetesファイル用インスペクション

廃止予定のKubernetesプロパティーを選択すると、Kubernetesプラグインが警告を表示します。

また、適用されたapiVersion種類のフィールドを持つ指定された要素に適用されないプロパティーを使用しようとすると、YAMLファイルの警告が表示されます。

YAML Kubernetesファイルのクイックフィックス

このプラグインは、YAML Kubernetesのリソース定義ファイルにキーがない要素を強調表示し、必要なキーを追加するためのクイックフィックスを提供します。

また、冗長キーについての警告も表示されます。付属のクイックフィックスを使用して、YAML Kubernetesのリソースファイルの重複キーを削除します。

新しいプラグインは、YAML Kubernetesのリソースファイルの編集不可能なキーも検出し、エディターで強調表示します。現在のYAMLファイルからすべてのそのような読み取り専用キーを簡単に削除できる簡単な方法があることに注意してください。

JSON Kubernetesリソースファイルのサポート

新しいプラグインは、JSON スキーマ機能に基づいてJSON Kubernetesのリソースファイルをいくらかサポートします。

コード補完クイック・ドキュメント・ポップアップは、JSON Kubernetesのリソースファイルでも使用できます。

JSON Kubernetes リソース・ファイルのインスペクション

新しいKubernetesプラグインはJSON スキーマに従って現在のキーを検証し、不正なプロパティーや値が使用されたときに警告します。

また、プラグインは必須のプロパティーが不足している要素を強調表示し、追加する必要があるプロパティーについてアドバイスします。

複製されたプロパティーは、JSON Kubernetesファイルでも検出されます。

選ぶ
あなたのエディション

Ultimate

Webおよび企業の開発用

Community

JVMおよびAndroid開発用
ライセンス有償のオープンソース、Apache 2.0
Java、Kotlin、Groovy、Scala
Android ?
Maven、Gradle、SBT
Git、SVN、Mercurial
Perforce
JavaScript、TypeScript ?
Java EE、Spring、遊び、Grails、その他フレームワーク ?
データベースツール、SQL
重複を検出しています ">?