IntelliJ IDEA 2018.3の新機能

Java

Java 12

IntelliJ IDEA 2018.3はJava 12の初期サポートが実装されています!インスペクションやクイックフィックスでRaw String Literals (JEP 326 )をお楽しみください。例えば複数行の文字リテラルをRaw Stringリテラルに変換、またはその逆を行ったり、不要なバッククオートを検出したりします。Learn more

より強力な重複検出

IntelliJ IDEAはたとえば変数名が異なる場合など、より複雑なケースでも重複を素早く検出します。異なる箇所はdiffビューで確認できます。

Java Stream APIサポートの改善

min()が後続する不要なsorted()を検出して、クイックフィックスで削除することができます。

Data flowの改善

データフローベースの新しいインスペクション-Condition is covered by further condition により後続の条件により不要な条件を検出し、不要な条件を削除するクイックフィックスも提供します。

不要な抑止インスペクションの検出

不要な@SuppressWarningアノテーションや// noinspection 行コメント、/** noinspection */ JavaDocコメントを検出します。抑止対象の警告が存在しない場合、警告してインスペクションの抑止を削除するクイックフィックスを提供します。

エディタ

複数行のTODOコメント

IntelliJ IDEA 2018.3ではTODOコメントを複数行書けます。TODOに続くコメントはエディタでハイライトされ、TODOツールウィンドウでリストアップされます。TODOコメントで2行目以降はインデントをつけることで通常のコメントと区別してマルチラインTODOコメントとして認識されます。

特定のファイルやフォルダでコードフォーマットを無効化する

特定のファイルのフォーマット、インポート最適化、コード順序の補正をロックすることを可能にしました。フォーマットが明示的にまたは暗黙的に行われる行われる場合は有効です。これはスコープを作成してフォーマットされるべきでないファイルを追加することで実現できます。

新しいインデントステータスバー

開いているファイルのインデントサイズをindentation status barで表示します。プロジェクト設定と、開いているファイルのインデントが異なる場合、インデントビューでアスタリスクが付き、ステータスバーのポップアップでインデントを整えたり設定変更をしたり出来ます。

EditorConfigサポートの改善

EditorConfig ファイルのシンタックスハイライトやコード補完がされます。indentation status barからEditorConfigファイルへジャンプすることも出来ます。

バージョン管理

GitHubプルリクエスト

GitHubプルリクエストの初期サポートが実装されました。GitHub Pull Requestsツールウィンドウ(VCS | Git | View Pull Requests)でプルリクエストを確認できます。diffをプレビューしたり、プルリクエストからコンテクストメニューを使ってローカルブランチを作って通常のブランチと同じくマージしたりできます。

“History up to Here”でフルヒストリーを表示可能

これまでHistory up to Here アクションでは選択したコミットまでの履歴しか表示できませんでしたが、それ以降の履歴も確認出来るようになりました。ツールバーのShow All Branches で切り替えられます。ファイルがそれ以降削除され、確認しづらい場合など特に便利です。

VCS Logの先進的なナビゲーション

VCS Log タブでコミットハッシュからナビゲートした後、またはGo to hash/branch/tag を使った後でForward、Backナビゲーションアクション使えるようになりました。左か右のアローキーを使えば子、または親のコミットをたどれます。

ホワイトスペースを無視

diffビューだけでなくマージ中もホワイトスペースを確認出来るようになりました。Merge Revisions for ダイアログで Ignore ドロップダウンメニューを使ってホワイトスペースを隠したり、トリムしたりできます。

Gitブランチ間のファイルコピー

Compare branchesダイアログのFilesタブから使えるGet from Branchアクションで別のブランチからファイルをコピーできます。

コミットダイアログのブランチ名

Commitダイアログ内でコミットしようとしているブランチ名を表示します。これはGit、Mercurial、SVNで有効です。

File Historyタブでdiffをプレビュー

Version ControlツールウィンドウのFile HistoryDiffプレビューができます。

Gitサブモジュールのサポート

ついにGitサブモジュールをサポートします!クローン、アップデート、コミット、diffの確認、コンフリクトの解決まで行えます。

検索と置換

新しいどこでも検索

プロジェクトとIDE内をより効率的にナビゲート出来ます。改善されたSearch Everywhereは他のナビゲーションダイアログであるFind ActionGo to classGo to fileGo to symbolと統合されま、tabキーで別の検索コンテクストに移動出来ます。もちろん全てのナビゲーションダイアログは依然これまでと同じショートカットでアクセスできます。

Find in Pathで複数行に渡るパターンを検索

Find in Path / Replace in the Path ダイアログで複数行に渡るパターンを検索/置換出来るようになりました。複数行を検索する際に正規表現を使わなくても良くなります。

新しいStructural Search & Replaceダイアログ

新しいStructural Search & Replace ダイアログでは検索フィールドのデフォルトで定義されたテンプレートでオートコンプリートが働くようになりました。検索アイコンのドロップダウンメニューで検索ヒストリを確認することが出来ます。スコープの設定はより簡単かつフレキシブルになりました。複雑だったEdit Variables のかわりにフィルタパネルが実装されました。

プラグイン設定ページ

設定画面のPluginsページを刷新し、より簡単にプラグインを検索、インストール、更新、アンインストール、管理出来るようになりました。プラグインを名前だけでなくタグでも検索出来るようになりました。また検索結果をダウンロード数、名前、レート、featured、更新日でソートすることが出来ます。

なんでも実行(Run Anything)

Run Anything

新しいRun Anythingダイアログ(Ctrl 2回)ではMaven、Gradleのタスクやターミナルコマンド、run configurationなどあらゆるものを実行できます。

Debug Anything

Run Anything 表示中にShiftを押すと Debug Anything モードになります。

Kotlin

バンドルのKotlinプラグインがv1.3となりました。

Kotlin 1.3サポート

Kotlinのメジャーリリリースである1.3が出て言語、ツール、ライブラリがアップデートされました。IntelliJ IDEAはKotlinプロジェクトの1.3へのアップグレードを手助けし、コードを最新のライブラリ互換にマイグレートします。

マルチプラットフォームプロジェクトサポートのエンハンスメント

Kotlin 1.3でマルチプラットフォームプロジェクトのモデルが改善され、表現力が向上してフレキシブルになり、またキョウツウコードの共有が簡単になりました。IntelliJ IDEAは多くのユースケースをカバーするプロジェクトサンプルを提供します。

新しい Kotlinインスペクションとクイックフィックス

IntelliJ IDEA 2018.2から30を超える新しいインスペクションとクイックフィックス、インテンションを追加しコーディングがより効率的になります。

Spring と Spring Boot

Spring Boot 2.1サポート

IntelliJ IDEA 2018.3は最近リリースされたばかりのSpring Boot 2.1をサポートします。@DataSize でアノテートされた設定値はデフォルトの @DataSizeUnit でバリデートされます。

Spring Initializrの改善

Spring Initializrを使ってプロジェクトを作る際、IDEは選択したテクノロジの活用に必要なプラグインをインストールするよう促します。

KotlinにおけるJPAとSpring Dataサポートの強化

IDEは自動的にクエリストリングにJPQLをインジェクトし、エンティティ名/パラメータを補完できます。Spring DataインターフェースをKotlinで書け、IDEは使っているエンティティを理解します。メソッド名のスマートコンプリートとパラメータのクイックフィックスが可能です。

アクセシビリティ

ハイコントラストテーマ

JetBrainsは全てのユーザーに最高の体験をもたらすことにコミットしています。そこで今回ハイコントラストテーマを今回実装しました。

スクリーンリーダーサポートの強化

スクリーンリーダサポートを強化し、行番号、VCSアノテーション、デバッガ、ガターアイコンも読むことが出来るようになりました。

JVMデバッガ

Javaプロセスへのアタッチ

デバッグエージェントなしに起動したJavaプロセスへアタッチ出来ます。プロセスにアタッチすると現在のスレッドの変数の値とメモリビューを確認できます。

ローカルプロセスへデバッガをアタッチした意場合はRun Toolウィンドウにある便利なAttach Debugger アクションを使うことが出来ます。

リモートコネクションのリスンの自動リスタート

リモートプロセスをデバッグしちえる際、Auto restartオプションを有効化していれば自動的に実行設定をリスタートします。

リモートJVMのAsyncスタックトレース

リモートJVMのasyncスタックトレースを確認できるようになりました。以下の操作で有効化できます:

  • /lib/rt/debugger-agent.jar をリモートマシンにコピー
  • -javaagent:debugger-agent.jarをリモートのJVMオプションに追加

Async Annotations Configurationダイアログで自分のAsyncアノテーションを定義できます。

全てのブレークポイントを取り除くアクション

プロジェクト内の、またはファイル内のブレークポイントを全て取り除くアクションを追加しました。Preferences (Settings) | Keymap | Debugger Actionsより好みのショートカットを設定できます。

Maven

ビルドと実行アクションを全てMavenに委譲することが出来るようになりました。Preferences (Settings) | Build, Execution, Deployment | Build Tools | Maven | Runner でDelegate IDE build / run actions to maven オプションを選択することで有効化できます。

 ターミナル

ターミナルが改善され、ターミナルタブ名、現在のワーキングディレクトリ、シェルヒストリがプロジェクトやIDEを閉じても保存されます。またターミナルタブが他のツールウィンドウタブと同じように見えるようデザインも調整しました。

Run Configuration

Java run configurationのマクロ

‘Application’ と ‘npm’ run configurationでマクロを使えるようになりました。Program argumentsフィールドで事前定義されたマクロを入力出来ます。

テキストファイルを入力に使う

テキストやログファイルを入力に使いたければ、Run/Debug ConfigurationsダイアログでRedirect input from オプションを選択して、パスを指定することで入力データとすることが出来ます。

Run configurationはデフォルトでシングルインスタンスのみに

同じ設定を並行実行出来ないようにするオプションがありましたが、今回からは逆に、デフォルトでシングルインスタンスとなりました。並行実行したい場合はRun/Debug Configuration ダイアログでAllow running in parallel オプションを指定してください。

JavaScript & TypeScript

JavaScriptで自動インポート

プロジェクトの依存からJavaScriptで必要なインポートを追加します。これはパッケージ内にTypeScript定義がある場合、またはパッケージがESモジュールとして書かれたソースを含む場合に働きます。

Angularサポートの強化

Angularテンプレートにおけるコード補完と変数、pipe、async pipe、テンプレートリファレンス変数のの定義箇所へのジャンプがより正確になりました。

Node.jsワーカースレッドのサポート

Node.js worker をデバッグ出来るようになりました。Node.js 10.12またはそれ以上を使い、 --experimental-worker フラグを追加してください。ワーカースレッドAPIのコード補完も可能です。

ESLint と TSLintがよりフレキシブルに

lintの設定ファイルでseverity levelレベルをオーバーライドし、lintが検出したものをエラーとして、または警告として確認出来ます。

TSLint エラーについてはAlt-Enterに続いて右アローキーでを押します。TSLint ルールを無効化する特別なコメントを入力出来ます。

Kubernetes

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

Helm resource テンプレートファイルを解決し、コード補完、リネームリファクアリング、インスペクション、クイックフィックスが可能になりました。

Helmリソースファイルのナビゲーション

values.yaml ファイルの定義を使って変数の利用箇所をナビゲートできます。ガターアイコンからラベル定義とセレクタ間をナビゲート出来ます。さらにvalues.yaml ファイルのガターを使ってオーバーライドされた、オーバーライドしている値へナビゲート出来ます。

Helmテンプレート結果プレビュー

Helmテンプレートの結果をdiffでプレビューできます。コンテクストメニューからKubernetes | Helm Templateアクションを選択してください。

Helm依存のアップデート

新しいHelm Dependency Update アクションでプロジェクトツリーの外部のtgz依存をダウンロード、またはすでにあるものをアップデートすることができます。

データベースツール

Cassandraデータベース

Cassandra NoSQLデータベースをサポートしました。

SQLコード補完の改善

GROUP BYでアグリゲートされていないフィールドがSELECT、MERGE、INSERT INTOテーブル変数、ストアドプロシージャの名前付きパラメータ、SUM()とAVG()の数値フィールド、FILTER(WHERE)句とSQLiteのフィールドタイプで補完ができるようになりました。

テーブルエイリアスの導入

Introduce table alias アクションでテーブルのエイリアスを直接作成出来ます。またエイリアスは自動的にテーブル名を使用している箇所と置換されます。

シングルコネクションモード

コンソールはそれぞれ別のコネクションを持っていますが、データソースにつき1つのコネクションを使い回すことが出来るようになりました。データベースツリーのテンポラリーオブジェクトをコンソール間で共有したり、異なるコンソールでトランザクションを共有したり出来ます。Data source properties | Options | Single connection modeより有効化出来ます。