IntelliJ IDEAは新しいJava 13 Previewの機能を受け入れる準備ができています。 このIDEは更新されたSwitch式とその新しい構文をサポートします。Java 13で複数行のブロックから値を返す必要がある場合、breakの代わりにyieldというキーワードを使えるようになりました。 また、テキストブロックのサポートも追加したため、HTMLやSQLなどのより長い複数行のテキストブロックをソースコードに埋め込めるようになりました。 この機能を使えば、2種類のフォーマットにまたがって貼り付け、文字列に貼り付ける際に値をエスケープしたり、テキストブロックに貼り付ける際にエスケープを除外したりできます。
複数のreturnを持つメソッドを単一の終了ポイントに変え、それをInline Methodリファクタリングの対象とする新しいインテンションを追加しました。 複数のreturn文を定義することで、メソッドに複数のexitポイントが含まれる場合があります。 IntelliJ IDEAでそのようなメソッドを埋め込む際、それは単一のreturn文でメソッドを終了するような単一の終了点を定義するように修正されます。 このようなメソッドは実行経路が一つしかなく、終了箇所を探す必要がないため、無用な混乱を招きません。
従来の ‘Constant conditions & exceptions’ インスペクションを ‘Find Cause’ という新しいアクションで補完しました。 潜在的な問題や発生中の問題に関する通知を行うだけでなく、インスペクションは問題のあるコードに移動できるようになりました。 もうファイルを端から端まで読み、目的の行を探す必要はありません。
Java用の ‘Duplicated code fragment’ インスペクションと他の言語用の ‘Locate duplicates’ ツールを統合し、両方の長所を組み合わせた ‘Duplicated code fragment’ というパワフルかつ新しいインスペクションを提供しています。 このインスペクションは設定可能で、その場で機能し、Java以外の多数の言語をサポートします。
IntelliJ IDEA 2019.2では、コード補完ポップアップの外観を変更し、より便利なものに仕上げました。 今後、補完機能では入力ミスしたパターンが認識され、修正候補が提案されます。このため、誤って "retru" と入力した場合は、IDEがそれを "return" に置き換えるよう提案します。
Structural Searchはプロジェクト内の特定のコードパターンを検索できる、パワフルな機能です。 IntelliJ IDEAはエディタで入力中に、検索条件に一致する文字列をハイライト表示します。 さらに、IDEはStructural Searchダイアログの編集エリア内に直接フィルタの値を表示します。 もう、パターンを試行錯誤しながら検索を何度も実行し直す必要はありません。
IntelliJ IDEAがWindows、macOS、LinuxのJava Flight Recorderと統合されたため、IDE内で直接アプリケーションのパフォーマンスを解析できるようになりました。
macOSユーザーとLinuxユーザーもAsync Profilerをご利用いただけるようになりました。 このツールではアプリケーション内のCPUとメモリの割り当て状況をすべて把握できるため、あなたにとって最高に頼もしい味方になることでしょう。
単一のビューで必要なものをすべてコントロールできるようになりました。 新しいServiceツールウィンドウには、RunDashboard、Database Console、Docker、Application Serversビューといった最も有益なツールが凝縮され、詰め込まれています。 また、接続、実行およびデバッグ構成、アプリケーションサーバー、データベースコンソールなどに対応した単一の表示・コントロールポイントも提供しています。 データベースに関しては、ツールウィンドウにクエリ実行中の各接続の時間を表示するクエリライブタイマーが実装されています。
IntelliJ IDEA 2019.2では、Serviceツールウィンドウ内のDockerノードのFilesタブで、実行中のDockerコンテナのファイルシステムを表示できます。
このリリースではファイルシステム更新時のパフォーマンスとUIの応答性を改善し、ファイルシステムの変更処理に起因するほとんどの遅延を緩和しています。 弊社は長期間にわたって起動時のパフォーマンスの最適化に取り組んできたため、IDEの起動が高速化されたことを体感できるでしょう。
フォルダごとに別々のコードスタイル設定を持たせられるようになりました。 試してみませんか? モジュールまたはパッケージのルートディレクトリにEditorConfigファイルを置けば、準備完了です。
IDEでEditorConfigファイルを使い、あらゆるコードスタイル設定を管理できるようになりました。 すべての調整内容をプレビューで表示できるようになったため、やみくもに設定を触る日々はもう去りました。
IntelliJ IDEAは、そのままの状態で20種類以上のプログラミング言語にシンタックスハイライトを提供するため、TextMateエディタを統合しました。 その他の言語に対するハイライト表示を追加する必要がある場合は、対象言語のTextMateバンドルをダウンロードしてそれをIDEにインポートするだけで結構です。
キャレットの配置場所を、現在の単語の終了位置または次の単語の開始位置のいずれかから選べるようになりました。 Settings/Preferences | Editor | General のCaret Movementオプションで最も適した動作を選ぶことができます。
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’ チェックボックスの選択を解除してください。
Mac OS XからmacOS 10.5以上のmacOS向けにデフォルトキーマップを変更しました。 また、キーマップの名前も変更しました。今後、Mac OS X 10.5はDefault for macOSと呼ばれ、旧来のMac OS XはIntelliJ IDEA Classicと呼ばれるようになりました。
IntelliJ IDEAで25MB超のファイルを簡単に開き、それらを長時間待つことなく検索できるようになりました。 これは軽微な修正ではありますが、ログファイルを処理する方には非常に役立ちます。
このリリースでは、コードインスペクションが提供する修正をさらに高速化しています。 インスペクションのポップアップが問題を詳述するだけではなく、最適な解決方法をすぐに表示するようになりました。 修正が適切だと思われる場合はAlt+Shift+Enterを押してください。あるいは、Alt+Enterショートカットを使用してリストから別のオプションを選択してください。
New Classダイアログの外観が新しくなりました。 さらに、作成できるクラスの型をプレビューできるようになりました。
Windows 10で、IDEの見た目が新しくモダンでボーダーレスになりました。
新しいオプションはプロジェクトの状況監視を支援し、Projectビューツリー内のすべての項目のサイズと修正時刻を表示します。 この機能を有効にするには、ツリービューでView | Appearance | Descriptionsを選択してください。
エディタとデバッガでタブのデザインが、LightテーマとDarculaテーマで同じ見た目になるように変更されました。 Lightテーマでは、タブの高さをツールウィンドウのヘッダーの高さに合わせました。 また、タブの下にあった白線を削除し、できる限り視認性を向上させました。
ツールバーからあまり使われていないアイコンを削除し、それらの視覚的な読み込みを減らすという流れを継続して、Find Usagesツールウィンドウのツールバーをスリム化しました。 一部のアイコンをグループ化したり、完全に削除したりしました。
このリリースでは、待望のGradle Dependenciesダイアグラムを追加しました。 GradleツールウィンドウでShow Dependenciesアイコンをクリックするか、Alt+Shift+Ctrl+U/Alt+Shift+Cmd+Uを押すだけで利用できます。 このダイアグラムのノードを選択してその隣接ノードを表示し、ノードをクリックしてそれらがルートにどのように接続されているかを確認できます。
バージョン2019.2から、build.gradleをより簡単に編集できるようになりました。 IntelliJ IDEAは新たにタスク宣言構文とさまざまな依存関係の表記法をサポートし、依存関係ブロックと依存関係設定クロージャの中でコード補完を提供しています。
Gradle操作のステータスツリーや出力コンソールが並んで表示されるようになり、同期/ビルドの進捗を監視しやすくなりました。 これにより、Gradleが出力する情報をより詳しく把握しやすくなりました。
IntelliJ IDEAがMavenのビルド出力と共に、Mavenのインポート処理をBuildツールウィンドウに報告するようになりました。 これによって進捗とエラー報告の視認性が向上し、Gradle/Mavenのエクスペリエンスがより一貫性のあるものになりました。
pom.xml内の依存関係に対し、細かい設定なしでコード補完が機能するようになりました。 これまでは、この機能はMavenリポジトリのインデックス作成を作動させた場合にのみ動作していました。
このリリースでは、Git用にネイティブなignoreファイル対応が追加されました。 このバージョンから、細かい設定なしですべてのサポート対象のバージョン管理システムでネイティブなignoreファイルを処理できるようになりました。
今後、設定で.gitignoreリストにファイルを手動で追加する必要はなくなりました。 今後ははるかに簡単に設定できます。VCSツールウィンドウのProject TreeまたはLocal Changesにignoreされるファイル一覧にファイルを追加するだけです。 Git ignoreとHG ignoreをサポートするために使用される.ignoreプラグインは、その主な機能がプラットフォームの一部となったため、VCS ignoresの高度な機能のみを提供するようになりました。
IntelliJ IDEA 2019.2は、GitまたはMercurialを使用するプロジェクトに大きな変化をもたらします。 ファイルをコミットするのに個別のダイアログを開く必要はありません。Version ControlツールウィンドウのLocal Changesタブからファイルをコミットできるようになりました。 コミットダイアログがIDEの他の要素を妨げることはないため、そこで変更されたファイルを確認し、必要に応じて変更できます。
そのためには、Settings/Preferences | Version Control | Commitダイアログで‘Commit from the Local Changes without showing a dialog’ チェックボックを選択してください。
IntelliJ IDEA 2019.2は、最近変更したファイルと共に、過去にコミットしたことがあるファイルを変更するように促します。
IntelliJ IDEAはIDE外からプロジェクトにコピーされたファイルや、コンソール内またはコードを実行中に作成されたファイルをバージョン管理システムに追加するよう促します。 そのようなファイルを自動追加するようにIDEを設定することもできます。
VCS Logタブで表示したい列を選択できるようになりました。 瞳のアイコンをクリックし、「Show Columns」(列を表示)を選択してから、表示したい列(作者、日付、コミットハッシュ)を選択します。
もうGit MergeやCherry-Pickを中止するためにターミナルに切り替える必要はなくなりました。 Abort Merge/Abort Cherry-pickオプションが、処理を実行中にBranchesポップアップ内に表示されます。
プロジェクトの変更を簡単に追跡できます。 Projectビューの選択したディレクトリ上でGit | Show Historyアクションを使用すると、IDEはそれぞれのパスで絞り込まれたLogタブに結果を表示します。
また、複数のフォルダで行われた変更をすべて同時に確認することもできます。 更新を確認したいフォルダを右クリックし、Git | Show Historyを選択してください。
これまではUpdate Project and Pullアクションを使用すると、IDEがVersion ControlツールウィンドウのUpdate Infoタブに更新されたファイルをツリー状に表示していました。 バージョン2019.2では、Update Infoは更新中に受け取ったコミットのリストとして表示されます。 Update Infoタブの見た目がLogタブに近づきました。
Branchesポップアップの ‘Compare with Current’ アクションが ‘Compare with Current’ と ‘Show Diff with Working Tree’ の2種類のアクションに分割されました。 更新された ‘Compare with Current’ アクションはコミット内の差分を表示し、新しい ‘Show Diff with Working Tree’ アクションはファイルの差分を表示します。
“Collapse Unchanged Fragments” モードで、Diffが現在のコードチャンクが変更されているメソッドを表示するようになりました。 これによって、変更の確認だけではなく、コンテキストも容易に把握できるようになりました。
IntelliJ IDEAにバンドルされているKotlinプラグインがv1.3.41に更新されました。
IntelliJ IDEA 2019.2にはKotlin向けの幅広いJPAコーディング支援機能が備わっています。 Generate Kotlin Entitiesスクリプトを使って、選択されたテーブルにKotlinエンティティクラスを生成できるようになりました。 このスクリプトは容易にカスタマイズできます。特定のタスクを解決するには、Scriptsディレクトリに移動し、スクリプトを修正することで動作を確認してください。 さらに、IDEでは ‘Go to Declaration’ アクション((Cmd+B/Ctrl+B) を使って対応する列やテーブルに移動できます。
停止された関数またはラムダ内のブレークポイントで停止した際、‘Async stack trace’ が最後に中断した箇所の変数の状態を表示するようになりました。 現在のコルーチン内で最後に中断した箇所から中断した関数のスタックトレース全体を参照し、変数に格納された値を確認できます。 これにより、どのように現在の実行ポイントにたどり着くのかを把握することができます。
ご存じの通り、Kotlinではスクラッチファイルを使用して小規模な実験を行うことができます。 明示的にスクリプトを実行することなく、一定時間のタイムアウトが経過した後にその場で結果を表示する対話モードを使用できるようになりました。
プロジェクト内のTODOリストをどのくらいの頻度で確認していますか? IntelliJ IDEAがKotlinの複数行TODOコメントを正しくハイライトし、それらをTODOツールウィンドウにリストとして表示するようになりました。
Java用の外部nullabilityアノテーションを使用している場合、IDEがKotlinの不正なアノテーション付きJavaメソッドの使用箇所について警告するようになりました。 これは純粋なIDEの機能であることに注意してください。対応するコードはKotlinコンパイラで警告なしにコンパイルされますが、IDEは補完的な警告を表示しています。
Groovy 3.0構文と、ネストされたコードブロックのサポートを拡張しました。 さらに、IDEはデフォルトでクロージャ式の波括弧と矢印を太字にするため、コード構造を容易に把握し、コードブロックをクロージャと区別できるようになりました。
また、パラメータの型が明示的に定義されていないGroovyメソッド用に、メソッド宣言部のすべてのパラメータに明示的な型を追加するクイックフィックスを使用できます。
複数行にまたがる可能性のある赤い波線で型の不一致に下線を引く代わりに、IntelliJ IDEAは型帰属のヒントを表示し、期待する型に一致しない部分をハイライト表示するようになりました。
型の不一致ツールチップが細かく縦位置が揃えられ、ペアで比較できるようになりました。 このアルゴリズムでは、糖衣構文、サブタイプ、分散、およびその他のトリッキーなものを考慮に入れています。
型の注釈ヒントがダイナミックな折りたたみ、ツールチップ、ナビゲーション、波括弧の自動挿入に対応しました。 型ヒントは本当に必要な場合にのみ表示されるようになりました。
これまでは、中括弧の中で式を折り返す(または折り返しを解除する)にはインテンションを使用しなければなりませんでした。 今回、IntelliJ IDEAは入力中に自動的にそれらの処理を実行できるようになりました。
IntelliJ IDEAは以前から使用されていないimport文や到達不可能なコードを「冗長」として(カラースキームで定義されているように)灰色でマークしてきました。 しかし、その他一部の冗長コードは “generic warning or error”(一般的な警告またはエラー)としてハイライト表示されていたため、コードが汚れ、実際のエラーが分かりづらくなっていました。 今回、すべての冗長コードを灰色で表現するようにしたため、ハイライト表示が過剰に目立たなくなりました。
case句全体を補完できるようになりました(これまでは、case句内のパターンを補完することしかできませんでした)。 補完機能は、matchステートメントだけではなく高階関数にも対応しています。
マージン付きの複数行の文字列リテラルに言語を注入できるようになりました。
IntelliJ IDEAは、ビルドツール(サーバー)とIDE(クライアント)の相互に通信する方法を標準化するBuild Server Protocol(BSP)をサポートするようになりました。 BSPのサポートはしばらくの間は実験的な機能でしたが、この度IDEの主要な機能となりました。
新しい 'Propagate to destructuring' インテンション(Alt-Enter)を使うと、可能な場合に別のデストラクチャリングで追加の変数を置き換えることができます。 デストラクチャリングを完全に削除するには、'Replace destructuring with property or index access' というインテンションアクションを使用してください。 条件文のブール式に不必要な部分がある場合、IDEが警告を表示し、その単純化方法を提案するようになりました。
JavaScriptまたはTypeScriptファイル内のシンボル名を変更する際、IDEが動的な使用箇所をグループにまとめ、デフォルトでそれらをリファクタリング対象から除外するようになりました。 これにより、リファクタリングの精度が向上し、リファクタリングプレビューツールウィンドウで正確に名前を変更すべきものをより細かくコントロールできるようになりました。
Vue.jsアプリケーションでVuetifyまたはBootstrapVueをお使いですか? IDEでこれらのライブラリを処理するための新しいアプローチを採用しました。 今回、これらや他のVueコンポーネントライブラリのコンポーネントとそのプロパティに対するコード補完がより正確になりました。
Node.JSプラグインがIntelliJ IDEA Ultimateにプレインストールされるようになりました。
必要なデータを、その正確な位置が分からなくても検索できるようになりました。 検索対象のデータソースまたはデータベースグループを右クリックしてFull-text Searchを選択するか、Ctrl+Alt+Shift+F / Cmd+Alt+Shift+F を押してください。
結果が絞り込まれ、データが見つかった場所の文字列だけが表示されます。 列が多すぎてデータの位置を特定できない場合は、データエディタでテキスト検索を使用してください(Ctrl/Cmd+F)。
似たような項目が多すぎる場合など、GoToポップアップでオブジェクトの位置を特定するのは容易ではない場合があります。 IntelliJ IDEA 2019.2では、検索対象に特定のデータソースやソースグループ内のいずれかを選べるようになりました。 Find In Pathでも同様に機能します。 これは、他のオブジェクトのDDL内のソースコードを探す場合に非常に役立ちます。
複数のメソッド呼び出しである行に ‘step into’ (ステップイン)する際、ステップインしたいメソッド、ラムダ、またはメソッド参照を選択できるようになりました。
このリリースでは単語やパスの補完、Quick documentation(クイックドキュメント)のプレビュー、さらにテキストベースのRename(名前の変更)など、シェルスクリプト向けの豊富な編集サポートを提供しています。 また、シェルスクリプト実行用の実行構成を作成できるようになりましたが、これはまだ始まりに過ぎません。 さらに高度なシェルスクリプトのサポートを提供するため、いくつかの外部ツールをIntelliJ IDEAに統合しました。 今後はAlt+Enterを押すことで、Shellcheckを使用してスクリプト内のエラーを検出して修正し、Shfmtを使用してシェルスクリプトを適切にフォーマットし、Explainshellを使って必要なコマンドの完全な説明を取得できます。
cURLのリクエスト文字列をHTTPクライアントに貼り付け、IDEにそれを完全なリクエストに変換させることができるようになりました。
例えば、あるサービスで認証を1回リクエストしたあと、後続のリクエストで追加の権限を要求するエンドポイントを呼び出したいとしましょう。 これまでは、初回応答のCookieは失われていました。 しかし、今後はそのようなことはありません。IDEがすべてのCookieを保持し、次のリクエストでそれらを送出するようになりました。
これまでは、ターミナルで行を折り返す際にリンクが破壊され、一部の行が不適切に折り返されることがありました。 今後は長い行を出力するコマンドを実行する際、ターミナルがそれを無理なくソフトラップし、すべてのリンクが動作できる状態を維持します。 折り返されたリンクをクリックすると、リンクがすぐにお使いのブラウザに転送されます。
IntelliJ IDEAをファイルマージ用のコマンドラインツールとして使用した場合に、適切な終了コードを返すようになりました。 これで、IntelliJ IDEAを任意のカスタムワークフローでマージツールとして使用できるようになりました。 また、ブロック形式でターミナルからファイル編集するための --wait コマンドラインオプションをサポートしています。
IDEがSettings/PreferencesダイアログのPluginsページですぐにプラグインの詳細を表示するようになったため、各プラグインを1つずつクリックする必要がなくなりました。 Updatesタブを削除し、Installedタブのプラグイン名の近くに 'Update' ボタンを配置しました。 歯車アイコンの下に、すべてのダウンロード済みプラグインを一括で無効化または有効化できる新しいオプションを追加しました。 大量のクリックから解放されるため、より重要な事柄に時間を費やすことができます。
Kubernetesプラグインを搭載したIntelliJ IDEA 2019.2の新バージョンでは、キーとパスの補完機能を備えたKustomizeの編集サポートと、Kustomizeリソースファイル用の多数のインスペクションを提供しています。
Renameリファクタリングが、Kustomize リソースファイルのファイルやディレクトリの名前変更にも対応しました。 Ctrl+B/Cmd+Bのショートカットを使って、ProjectツールウィンドウでKustomizeリソースファイルで宣言されたパスから関連するパッケージやファイルにジャンプできるようになりました。
URLを使ってカスタムリソース定義(CRD)仕様を外部ソースから読み込めるようになりました。 仕様を追加するには、Settings/Preferences | Languages & Frameworks | Kubernetes に移動し、CRD仕様にURLを追加してください (これまではローカルファイルからCRMを追加することができました)。