Scala の機能
IntelliJ IDEA を使用すると、さまざまな Scala インテンションアクション、クイックフィックス付きのインスペクションを使用できるほか、コードを Java から Scala に変換し、IntelliJ IDEA での作業中にさまざまな Scala テンプレートを使用できます。 IntelliJ IDEA のエディターの一般的な使用方法の詳細については、「コードエディターの使用 」を参照してください。
Scala での文字列の操作
IntelliJ IDEA と Scala プラグインは、Scala プログラミングでの文字列操作を支援する多くのツールを提供します。このページでは、最も一般的なアクションとショートカットのいくつかを紹介します。
三重引用符の文字列
通常の文字列に引用符文字 ('"') を含める場合は、文字の前にバックスラッシュを書いてエスケープする必要があります ('\"')。 文字列に引用符がたくさんあると面倒ですし、見つけにくいタイプミスが発生する可能性もあります。 代わりに、通常の文字列を三重引用符に変換できます。 これを行うには、文字列を入力して Alt+Enter を押し、インテンションのリストから """string""" に変換 を選択します。
複数行文字列
同じ """string""" に変換 インテンションを使用すると、エスケープされた改行文字 ('\n') を含む通常の文字列を複数行の文字列に変換できます。 Alt+Enter を押して、インテンションのリストを開きます。 "string" に変換する を選択し、 Enter を押します。 同じインテンションをもう一度使用して元に戻すことができます。
複数行の文字列を最初から入力するには、エディターで三重引用符を入力します。 Enter を押すと、自動的に stripMargin メソッドが呼び出されます。 stripMargin メソッドは、指定された区切り文字までの複数行の文字列の左側の部分を削除します。 空白も保持されます。
複数行の文字列設定
Scala 設定の 複数行文字列 タブを使用して、 余白文字 インデントなどの複数行文字列オプションの別の形式を設定するか、複数行文字列のサポートを無効にします。
Ctrl+Alt+S を押して設定を開き、 を選択します。 次に、 Scala ページで、 複数行文字列 タブを選択します。 設定を編集し、 OK をクリックします。

変数参照を追加して、単純な文字列を補間された文字列に変換します。
+ + による連結
計算結果を文字列に含める Scala の慣用的な方法は、補間を使用することです。 何らかの理由で文字列を 2 つに分割し、代わりに '+' 符号を使用して計算結果と連結する場合は、文字列を分割する場所にカーソルを移動し、インテンションのリストから 連結してギャップを挿入: (" + + ") を選択します。
'\r' ' インテンションを置き換える
このインテンションを使用すると、現在使用しているオペレーティングシステムに関係なく、複数行の文字列の次の行の正しい位置にキャレットを保持できます。 複数行の文字列を入力し、 Alt+Enter を押して、リストから適切なインテンションを選択します。

インジェクション言語 / リファレンス
インジェクション言語 / リファレンス インテンションを使用して、複数行の文字列リテラルに言語または参照を挿入します。 詳細については、「言語インジェクション 」を参照してください。
Ctrl+Alt+S を押して設定を開き、 を選択します。
Scala ページで、 複数行文字列 タブを選択します。

設定を編集し、 OK をクリックします。
暗黙のヒント
IntelliJ IDEA を使用すると、暗黙的な変換と引数のエディターヒントを有効化、展開、折りたたむことができます。 これらのいわゆる暗黙的ヒントは、Scala コンパイラーによってコード内の特定の場所で必要とされる暗黙的ヒントに関する視覚的な手がかりを提供します。 この機能により、コードベースを実際に変更することなく、コードの可読性とデバッグ機能が強化されます。
メインメニューで、 に移動します (または Ctrl+Alt+Shift += を押します)。 エディターでヒントを右クリックし、ポップアップメニューから適切なアクションを選択して、既存のヒントを展開するか、モードを無効にするか、 暗黙の引数を表示します。

また、エディターで Ctrl+Alt+Shift+ + を押して暗黙のヒントを有効にすることもできます。 同じショートカットを再度押すと、IntelliJ IDEA は暗黙的なヒントを展開してより詳細な情報を表示します。 ヒントを折りたたむには、 Ctrl+Alt+Shift+ - を押します。
インレイヒント
このセクションでは、Scala プラグインと Scala プログラミング言語のコンテキストでインレイヒントについて説明します。 より一般的な概要については、 インレイヒントを参照してください。
IntelliJ IDEA のインレイヒントは、エディターのコード内に直接表示される視覚的なヒントです。 ソースコード自体を変更せずに、コードをより読みやすく、理解しやすくするためのコンテキスト情報を提供します。 このようなヒントは非常に有用です。特に Scala のような言語では、型推論システムによりコードが簡潔になる反面、一目で内容を把握しづらい場合があります。
設定 ダイアログ (Ctrl+Alt+S) で、 に進みます。

型ヒント
IntelliJ IDEA は、推定された値の型をインレイヒントとして表示できます。 これは、複合型の値や汎用関数を使用する場合に特に便利です。

型の不一致のヒント
これらのインレイヒントは、式の結果の型が、結果が保持されると想定されている宣言された値の型と異なる場合に表示されます。
メソッドチェーン
Scala コレクションは、データを変換するための幅広い方法を提供します。 これらのメソッドは、場合によっては、コレクションの種類とコレクション内に保持されるデータの種類の両方を段階的に変更する非常に長い変換シーケンスに連鎖することができます。 インレイヒントを使用して、そのプロセスを追跡できます。

コンテキストメニューからインレイヒントを有効または無効にする
コンテキストメニューからさまざまなタイプのインレイヒントを有効または無効にできます。ヒントを右クリックしてオプションを選択します。

X-Ray モード
X-Ray を使用すると、インレイヒントやその他の追加情報を無効のままにしておくか、快適に感じるまで部分的にのみ有効にしておき、 Ctrl を 2 回押して押し続けると、他のすべてのヒントが表示され、 Ctrl を押している間だけ表示されます。

設定で各ヒントのオン / オフを切り替えることができます。 Ctrl+Alt+S を押して設定を開き、 を選択します。 メソッドセパレーターとインデントガイドについては、それぞれ で永続的にオンにすることも、 で永続的にオンにすることもできます。 特定の種類の追加情報が永続的にオンになっている場合、X-Ray 設定に関係なく表示されます。
X-Ray モードは、他の 2 つのアクション、 ( Ctrl+Alt+Shift+= )および 型情報を表示する (Ctrl+Shift+P )の代替手段でもあります。 どちらの場合でも、それぞれのアクション用のショートカットを覚える代わりに、 Ctrl を押すことができます。 さらに、ヒントに表示された型はナビゲート可能です。 Ctrl を押しながら、型にカーソルをあわせてクリックすることで、型宣言へ移動できます。
implicits 使用箇所の検索
使用箇所の検索(U) アクションを使用すると、暗黙的な定義からその使用箇所に移動できます。 エディターで暗黙的定義を選択し、コンテキストメニューから 使用箇所の検索(U) Alt+F7 を選択します。
この機能はバイトコードインデックスに依存しており、そのままではソースコードに存在しない次の隠し要素を見つけるために使用することもできます。
apply/unapplyメソッド呼び出し単一抽象メソッド (SAM) 型のインスタンス化
for 内包表記を介した
foreach/map/flatMap/filter/withFilter呼び出し

暗黙の自動インポート
IntelliJ IDEA は、未解決の暗黙的変換の自動インポートをサポートしています。 エディターにコードを入力します。 未解決の式にキャレットを置き、 Alt+Enter を押し、提案されたオプションのリストからインポートする変換を選択します。 その結果、IntelliJ IDEA は必要なインポートステートメントを追加します。
暗黙の型変換
IntelliJ IDEA では、暗黙の変換メソッドと引数を呼び出すことができます。
暗黙的な変換をリストする
式を選択し、 Ctrl+Shift+Q (macOS の場合は Ctrl+Q )を押して、適用可能な暗黙的変換のリストを呼び出します。 リストの上部に通常のスコープが表示され、リストの下部に拡張スコープが表示されます。
必要な場合は、暗黙の変換メソッドを明示的にしてください。 Alt+Enter を押して、 明示的にする または 明示的にする (インポートメソッド) を選択します。

明示的にする を選択すると、IntelliJ IDEA はクラス名を含むメソッド呼び出しを返します。 これは、最初に必要だった特定の暗黙的な変換メソッドをコンパイラーが確実にインポートする必要がある場合に役立つかもしれません。

明示的にする (インポートメソッド) を選択すると、メソッドは静的にインポートされ、IntelliJ IDEA はクラス名なしでその呼び出しのみを返します。 また、次回有用な暗黙的変換のリストを開いたときに、このメソッドが通常のスコープで表示されることになります:

暗黙的な引数をリストする
暗黙的な変換が使用されたメソッドにキャレットを置き、 Ctrl+Shift+P を押して暗黙的な引数を呼び出します。 これは、特定の呼び出しにどのような暗黙の引数が渡されたかを調べたい場合のコード分析に役立つ場合があります。 また、再帰的な暗黙の引数を表示することもできます。

IntelliJ IDEA が暗黙のパラメーターが渡されたメソッド呼び出しを見つけることができない場合は、ポップアップメッセージが表示されます。

型情報アクション
IntelliJ IDEA では、Scala 型情報を表示する アクションを使用して型推論を操作できます。
エディターで 型情報を表示する アクションを呼び出すには、値に移動して Ctrl+Shift+P を押します。

値定義の型情報も確認できます。 値の定義にキャレットを置き、 Ctrl+Shift+P を押します。

型のアノテーションを追加するには、値をハイライトして Shift+Enter を押し、コンテキストメニューから 値の定義に型アノテーションを追加する を選択します。 その結果、型アノテーションが追加されます。
型アノテーションを削除するには、 Shift+Enter を押して 値の定義から型のアノテーションを削除する を選択します。
式のラップとラップ解除
入力時に Scala コード内の式を自動的にラップまたはラップ解除できます。 ラップする式の前に左中括弧を追加すると、IntelliJ IDEA は式の最後に右中括弧を自動的に追加します。 式をアンラップするには、左中括弧を削除します。 IntelliJ IDEA は右中括弧を自動的に削除します。
コード補完
次の操作にコード補完を使用できます。
クラスをインポートするには、コード上で Shift+Enter を押し、 クラスのインポート を選択します。 ただし、IntelliJ IDEA は多くの場合、インポートする必要があるものを認識し、提案のリストを表示します。
パラメーターに対する名前ベースの型提案です。 IntelliJ IDEA では、型参照を実際に追加する前に、命名と型の両方を自動で補完できます。

補間された文字列に変換する インテンションを起動します。
$の後にコード補完を使用すると、通常の文字列を補間された文字列に簡単に変換できます。あるいは、文字列内の連結を含む値を選択し、 Alt+Enter を押して、 補間された文字列に変換する を選択します。
サブタイプを持つシールされた型、または Scala 3 列挙型がある場合は、それらの完全な一致チェックを生成できます。 自動補完が利用できることに注意してください。 その結果、コンパイラーは、シールされた型のすべての可能なメンバーのパターン一致をチェックします。
case 句内だけでなくコードも完成できますが、case 句全体も完成できます。
使用箇所から作成
IntelliJ IDEA を使用すると、最初に宣言せずに新しいコード要素を作成できます。 これを行うには、新しいコード要素の名前を入力し、 Alt+Enter を押します。 次に、インテンションのリストから必要なものを選択します。

構造ビュー
IntelliJ IDEA を使用すると、コードの構造を表示できます。 構造 ツールウィンドウを開き、 Alt+7 を押します。

構造 ツールウィンドウからエディターのコード項目に移動するには、 F4 を押します。
コードをハイライトするには、 Ctrl+Enter を押します。
コード生成
オーバーライド、デリゲート、メソッドの実装などのアクションを生成するには、 Alt+Insert を使用します。

例: メソッドの上書き アクションを選択します。 IntelliJ IDEA は、オーバーライド可能なメソッドのリストを含むダイアログを表示します。 必要なものを選択し、 OK をクリックします。

対応する補完は、 override キーワードを入力するときに機能します。

ライブテンプレート
あらかじめ用意された Scala のテンプレートを使用するには、 Ctrl+J を押します。すると IntelliJ IDEA で利用可能な Scala のライブテンプレート一覧が表示されます。 必要なものを選択し、 Enter を押します。
新しいテンプレートを定義したり、既存のテンプレートを編集したりすることもできます。 を選択し、右側のオプションから Scala テンプレートのリストを開きます。

新しいテンプレートを追加する場合は、 をクリックします。
既存のテンプレートを編集する場合は、必要なテンプレートを選択して、デフォルトの定義を変更します。
後置補完
すでに入力された式を、ドットの後に入力する接尾辞に基づいて別のものに変換することができます。
後置補完を有効または無効にするか、後置固有の定義済みテンプレートのリスト、その説明、コードサンプルを表示するには、 にある 後置補完 ページを開きます。
インスペクション
Scala で利用可能なインスペクションは、 Ctrl+Alt+S の インスペクション ページで確認できます。 IntelliJ IDEA は Akka および Play もサポートしているため、それらに対応したインスペクションもいくつか用意されています。

どこでも検索
IntelliJ IDEA でサポートされている他の多くのプログラミング言語の場合と同様に、 どこでも検索 は、Scala 開発者がコードを迅速に操作できるようにする強力な機能です。 メインメニュー から開くこともできますが、 に移動し、そこにあるアクションのリストで どこでも検索 を見つけ、選択した簡単なショートカットにバインドすることをお勧めします。

デフォルトで、 どこでも検索 はポップアップで表示され、クラスの名前(トレイトやオブジェクトを含む)、ファイルの名前、コードで使用されているすべてのシンボル(フィールド、メソッド、変数など)、そしてそれらすべてを対象にコードベースを検索できます。 IntelliJ IDEA のアクションからも検索できます。アクションは多数あり、IntelliJ IDEA ができることを知るのに便利です。
このリストはプラグインによって拡張できます。 例: Git プラグインは、Git リファレンスを検索する機能を追加します。 ポップアップウィンドウの右上隅にあるアイコンをクリックすると、 どこでも検索 を画面の下部に移動でき、検索するシンボルがコード内でどのように表示されるかを確認することもできます。

機械学習に基づくコード補完
Scala コードで使用できる通常のコード補完機能に加えて、機械学習に基づいて Scala コード補完を有効にすることができます。 収集されたデータから学習したルールを適用し、より良い提案をもたらします。
Ctrl+Alt+S を押して設定を開き、 を選択します。 右側のオプションの ML を使った提案の並び替え セクションで、 機械学習に基づいてコード補完の候補を並び替え | Scala を選択します。
必要に応じて並べ替えオプションを構成し、機械学習が要素の順序にどのように影響するかを確認します。 ただし、この機能は実験的なものであるため、ランキングが目立って変わることはありません。

インデント構文のサポート},{
新規プロジェクト ウィザードを開き、Scala バージョンのコンボボックスから Scala 3.x を選択すると、その下に次のチェックボックスが表示されます: インデントベースの構文(波括弧は任意)を使用する},{。},{ これをオンにすると、新しいプロジェクトを有意なインデントで記述するよう IntelliJ IDEA に指示することになります。},{ IntelliJ IDEA は、新しい構文ルールに従って Scala 3 コードを構文解析し、それに合わせてコードをハイライトします。},{

同様に、すでに Scala 3 のインデントベースの構文で書かれた既存のプロジェクトを開いた場合は、IntelliJ IDEA でそのサポートを有効化できます。},{
Ctrl+Alt+S を押して設定を開き、 を選択します。 タブの一覧を右にスクロールし、 その他 タブを選択して、 Scala 3 セクションで インデントベースの構文(波括弧は任意)を使用する},{ チェックボックスをオンにします。},{

Scala のガターアイコン},{
アイコン | 説明 |
|---|---|
![]() |
|
![]() |
|
![]() |
|
![]() |
|
この機能は、Scala のクラス、トレイト、不透明型と、それらのコンパニオンオブジェクトの間をナビゲートするのに役立ちます。あるデータ構造にコンパニオンオブジェクト(同じファイル内にあり、同じ名前を持つオブジェクト)がある場合、データ構造の左側とコンパニオンオブジェクトの左側にガターアイコンが表示されます。アイコンの上下に表示される小さな矢印は、(データ構造側のアイコンなら)ファイル内のコンパニオンオブジェクトのある方向、(コンパニオンオブジェクト側のアイコンなら)データ構造のある方向を示します。ガターアイコンをクリックすると、キャレットがその位置にジャンプします。},{ 該当するデータ構造にコンパニオンオブジェクト(同じ名前のオブジェクトが同じファイル内にある)がある場合、その左側とコンパニオンオブジェクトの左側にガターアイコンが表示されます。 アイコンの上下に表示される小さな矢印は、(データ構造側のアイコンなら)ファイル内のコンパニオンオブジェクトのある方向、(コンパニオンオブジェクト側のアイコンなら)データ構造のある方向を示します。},{ ガターアイコンをクリックすると、キャレットがその位置にジャンプします。},{
新規 Scala クラス/ファイルウィンドウとアイコン},{
アイコン | 説明 |
|---|---|
コンパニオンオブジェクトのない、 | |
コンパニオンオブジェクトのある、 | |
コンパニオンオブジェクトのない、 | |
コンパニオンオブジェクトのある、 | |
コンパニオンオブジェクトのない、 | |
コンパニオンオブジェクトのある、 | |
コンパニオンオブジェクトのある、 | |
| |
複数のデータ構造を含む Scala ファイルのアイコン。},{ |
プロジェクトビュー および(一部は) 新規 Scala クラス/ファイル ウィンドウでそれらのアイコンを確認できます。},{ このように、IntelliJ IDEA は Scala コードを小さな機能単位に分割し、それぞれを個別のファイルに保存する慣行をサポートします。},{ ファイルの名前はデータ構造と同じである必要があります。 また、1 つのファイルに 1 つのデータ構造のみとするルールはトップレベルの構造にのみ適用されます。トップレベルの内部には、必要なだけ入れ子の構造を作成できます。}]}{













