IntelliJ IDEA 2020.2ヘルプ

コード補完

このセクションでは、コーディングプロセスのスピードアップを可能にするコンテキスト対応コード補完のさまざまなテクニックについて説明します。

基本補完

基本コード補完は、可視性スコープ内のクラス、メソッド、フィールド、およびキーワードの名前を完成させるのに役立ちます。コード補完を呼び出すと、IntelliJ IDEAはコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します(提案にはライブ・テンプレートも含まれます)。

基本コード補完がフィールド、パラメーター、または変数宣言の一部に適用されている場合、IntelliJ IDEAは項目タイプに応じて可能な名前のリストを提案します。

Invoking basic code completion for the second time shows inaccessible classes and members (these can be made public by applying an intention action).

When invoked for the third time in a row, IntelliJ IDEA will look for suggestions for classes and interface names in the entire project, regardless of dependencies. If the necessary class is not yet imported, it will be imported automatically.

基本補完を呼び出す

  1. 名前の入力を開始します。デフォルトでは、IntelliJ IDEAは入力時に自動的にコード補完ポップアップを表示します。自動補完が無効になっている場合は、Ctrl+Space を押すか、メインメニューからコード | コード補完 | 基本を選択します。

    basicCodeCompletion.png
  2. 必要に応じて、Ctrl+Space を2回押します(または Ctrl+Alt+Spaceを押します)。

    これは、アクセスできないクラスとメンバー、および静的なフィールドとメソッドを示しています。

    codeCompletionSecondClass1.png
  3. 3回目に呼び出されると、基本コード補完は、依存関係にかかわらず、候補リストをプロジェクト全体のすべてのクラスに展開します。

スマート補完

スマートコード補完は候補リストをフィルタリングし、現在のコンテキストに適用可能なタイプのみを表示します。

スマート補完は適切な型を決定することが可能である状況で役に立ちます:

  • 代入文の右側の部分

  • 可変イニシャライザ

  • return ステートメント

  • メソッド呼び出しの引数リスト

  • オブジェクト宣言の new キーワードの後

  • 連鎖式内

スマート補完を呼び出す

  1. 入力を開始します。デフォルトでは、IntelliJ IDEAは入力時に自動的にコード補完ポップアップを表示します。自動補完が無効になっている場合は、Ctrl+Shift+Space を押すか、メインメニューからコード | コード補完 | スマート入力を選択します。

    smart type completion
  2. 必要に応じてもう一度 Ctrl+Shift+Space を押してください。これにより次のことができます。
    • コレクション、リスト、配列IntelliJ IDEAは、同じコンポーネントタイプのシンボルを検索し、変換することを提案します。

    • 静的メソッド呼び出しまたは定数参照。IntelliJ IDEAは静的メソッドとフィールドをスキャンし、現在のコンテキストに適したメソッドを提案します。

    smart type completion second call

ステートメント補完

文の補完を使用して、構文的に正しいコード構成体を作成できます。必要な構文要素(括弧、中括弧、セミコロン)を挿入して、次のステートメントの入力を開始できる位置に移動します。

メソッド宣言を補完する

  • メソッド宣言の入力を開始し、左括弧の後に Ctrl+Shift+Enter を押します。

    complete a method declaration

コード構成を補完する

  • コード構成の入力を開始し、Ctrl+Shift+Enterを押します。

    IntelliJ IDEAは、構成を自動的に完了し、必要な句読点を追加します。キャレットは次の編集位置に配置されます。

    Complete a code construct

メソッド呼び出しの引数をラップする

  • 式を入力します。次に、メソッド呼び出しを入力します。 println が候補リストでフォーカスを取得したら、Ctrl+Shift+Enterで選択します。

    Wrap a method call argument

ヒッピー補完

ヒッピー補完は、目に見える範囲でテキストを分析し、現在のコンテキストから提案を生成する補完エンジンです。それは現在開いているファイルのどれからでもどんな単語でも完成させるのに役立ちます。

キャレットの文字列を既存の単語に展開する

  1. 最初の文字列を入力し、次のいずれかを実行します。

    • Alt+/ を押すか、コード | コード補完 | 循環的に単語を展開を選択して、キャレットの前に一致する単語を検索します。

    • Alt+Shift+/ を押すか、コード | コード補完 | 循環的に単語を展開 (後方)を選択して、キャレットの後ろにある他の開いているファイルで一致する単語を検索します。

    提案された最初の値が表示され、プロトタイプがソースコードで強調表示されます。

    expandWord1.png
  2. 提案を受け入れるか、Alt キーを押しながら希望の単語が見つかるまで / を押し続けます。

後置コード補完

後置コード補完を使うと、コードを書くときの後方キャレットジャンプを減らすことができます。既にタイプされた式は、ドット、式のタイプ、およびそのコンテキストの後に入力する接尾辞に基づいて別のものに変換できます。

  • 利用可能な後置テンプレートの完全なリストを表示するには、設定/環境設定ダイアログ Ctrl+Alt+Sエディター | 一般 | 後置補完に移動します。

  • 接尾辞テンプレートを展開するには、Tab , Spaceまたは Enter を選択します。

後置でステートメントを変換する

  • 式を入力し、ドットの後に接尾辞を入力します(例: .if:)。

    public class Foo { void m(boolean b) { b.if } }
    fun foo(x: Boolean) { x.if }

    最初の式は if ステートメントでラップされます。

    public class Foo { void m(boolean b) { if (b) { } } }
    fun foo(x: Boolean) { if (x) { } }

特定の接尾辞補完テンプレートを無効にするには、設定/環境設定ダイアログ Ctrl+Alt+Sエディター | 一般 | 後置補完を選択します。

接尾辞テンプレートを拡張するには、Tab , Spaceまたは Enter を選択できます。

たとえば、長いキーを短いキーに置き換えるか、適用可能な式の種類のリストを展開するなど、あらかじめ定義されたポストフィックステンプレートを編集できます。

カスタム後置テンプレートを作成する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sで、エディター | 一般 | 後置補完に移動します。

  2. ツールバーの the Add button をクリックします。

  3. キー、つまりテンプレートを呼び出すシンボルの組み合わせを指定し、新しいテンプレートを適用する式の種類を選択して、ターゲット式を $EXPR$ <target_expression>$EXPR$ =!nullなど)の形式で入力します。

タグと属性の完成

IntelliJ IDEAは、多くのファイルタイプのタグと属性の名前と値を自動的に補完します。

タグと属性名の補完は、ファイルが関連付けられているDTDまたはスキーマに基づいています。スキーマ関連がない場合、IntelliJ IDEAはファイル内容(タグと属性名とその値)を使用して入力を完了します。

XML/XSLJSP/JSPXファイルでは、taglibと名前空間の補完が利用できます。

タグ名の補完

  1. < を押し、タグ名の入力を開始します。IntelliJ IDEAは、現在のコンテキストで適切なタグ名のリストを表示します。

    Tags completion

    UpDown のボタンを使ってリストをスクロールします。

  2. Enter を押して、リストから選択を受け入れます。ファイルがスキーマまたはDTDに関連付けられている場合、IntelliJ IDEAはそれに応じて必須属性を自動的に挿入します。

taglib宣言をインポートする

タグライブラリで宣言されたタグを使用する必要がある場合は、このタグライブラリをインポートしてからカスタムタグを使用する必要があります。

  1. taglib接頭辞を入力して、Alt+Insertを押してください。

  2. リストからtaglibを選択し、Enterを押します。

    Import taglib declaration

    IntelliJ IDEAは選択されたtaglibをインポートし、import文を自動的に追加します。

taglibで宣言されたタグを挿入する

  1. タグの入力を開始し、Ctrl+Alt+Spaceを押します。

  2. リストからタグを選択します。角括弧には、それが属するtaglibの uri が表示されます。

    Tag completion: before

  3. 目的のtaglibを選択し、Enterを押します。IntelliJ IDEAは、選択したtaglibの宣言を追加します。

    Tag completion: after

コード補完設定を構成する

コード補完オプションを構成するには、設定/環境設定ダイアログ Ctrl+Alt+Sエディター | 一般 | コード補完に移動します。

次の設定を選択できます。

項目

説明

大/小文字を区別する補完候補で大文字と小文字を区別するかどうかを選択します。最初の文字を大文字にするか、すべての文字を大文字にするかを選択します。
単一の候補を自動的に挿入基本補完やスマートな補完の提案が1つしかない場合に、コードを自動的に補完するかどうかを選択します。
候補をアルファベット順にソートする

候補リスト内のアイテムを、関連性で並べ替えるのではなく、アルファベット順に並べ替える場合に選択します。

You can change this behavior at any time by clicking icons.actions.more.png in the suggestion list and toggling the 名前でソート option.

入力時に候補を表示する明示的に補完を呼び出さなくても、候補リストが自動的に呼び出されるようにする場合に選択します。このオプションはデフォルトで有効になっています。
スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入する選択した候補を挿入する場合は、言語、コンテキストなどに依存する特定のキーを入力して選択します。Javaの場合、このようなキーにはSpace、Tab、[and]、(and)などが含まれます。
ドキュメントのポップアップを次で表示

選択リストの各項目のポップアップを自動的に表示し、現在、ルックアップリストで強調表示されているクラス、メソッド、またはフィールドのドキュメントを表示する場合に選択します。

右側のフィールドで、ポップアップが表示されるまでの遅延(ミリ秒)を指定します。

機械学習に基づいたランク補完の提案

機械学習モデルを利用して、最適なアイテムを候補リストの上位にランク付けする場合に選択します。

JavaScript

タイプベース補完のみ

デフォルトでは、IntelliJ IDEAは、タイプに関係なく、シンボルの補完を提案します。このアプローチでは、複雑な場合、リストに複数の補完バリアントが表示されます。

完成をより正確にするには、このオプションを選択します。補完リストは、IntelliJ IDEAの推論に強く依存します。その結果、推論が不十分な場合にリストが空のままになることがあります。

null 許容型の Optional チェーンを持つアイテムを提案する

デフォルトでは、IntelliJ IDEAはオプションの連鎖演算子 (?)(英語)でシンボルの補完を提案します。この動作を抑制するには、このチェックボックスをオフにします。

補完時にメソッド本体をオーバーライド用に拡張する

デフォルトでは、親クラスまたはインターフェースからメソッドをオーバーライドし、補完候補のリストからこのメソッドを選択する場合、IntelliJ IDEAはパラメーターを自動的に追加し、可能であれば super() 呼び出しを生成し、型情報を追加します。

このチェックボックスをオフにすると、完了時にオーバーライドのメソッド本体が自動的に生成されなくなります。

名前の補完
  • 変数名とパラメーター名を提案する : デフォルトでは、チェックボックスはオフになっています。選択すると、IntelliJ IDEAは宣言時に新しい変数とパラメーターの名前を提案します。これらの提案は、プロジェクト、使用しているライブラリ、標準APIで定義されているクラス、タイプ、およびインターフェースの名前に基づいています。

  • クラス・フィールドの名前を提案する

    このオプションはデフォルトでオフになっています。

  • 推奨されるパラメーター名の型アノテーションを追加する : このチェックボックスを選択すると、補完候補ごとにそのタイプに関する情報が提供されます。

    このチェックボックスは、変数名とパラメーター名を提案するチェックボックスが選択されている場合にのみ使用できます。

パラメーター情報
補完時にパラメーター名ヒントを表示するパラメーター値のヒントを表示する場合に選択します。
パラメータ情報ポップアップを表示する (ミリ秒)

このチェックボックスを選択すると、エディターに左括弧が入力されたとき、または候補リストからメソッドが選択されたときに、IntelliJ IDEAが使用可能なすべてのメソッドシグネチャーを含むポップアップを自動的に表示します。

右側のテキストフィールドに、ポップアップウィンドウが表示されるまでの遅延時間(ミリ秒単位)を指定します。

このチェックボックスが選択されていない場合は、Ctrl+P を使用してパラメータ情報を表示します。

完全なメソッド・シグネチャーを表示するこのチェックボックスをオンにすると、パラメータ情報にメソッド名や返された型などの完全なシグネチャーが表示されます。
SQL
JOIN の補完時にエイリアスを使用する

JOINステートメント内の表の別名を作成します。

Use aliases in completion for JOIN
自動生成された ON 句のオペランド順序を反転する

ON句のオペランドを切り替えます。このチェックボックスをオフにすると、FROMテーブルはJOIN条件の最初になります。

Invert order of operands in auto-generated ON clause
テーブル名を補完するときにエイリアスを自動的に追加する

テーブル名のエイリアスを作成します。

Automatically add aliases when completing table names
テーブル名の後に補完のエイリアス名を提示する

コード補完(Ctrl+Space)を使用するときにテーブル名のエイリアスを提案します。

Suggest alias names in completion after table names
カスタム・エイリアス (テーブル)

このテーブルに使用するテーブル名とエイリアスを追加できます。テーブルとエイリアスのペアを追加するには、エイリアスの追加ボタン(the Add alias button)をクリックします。

クラスまたはパッケージを補完から除外する

  1. 設定/環境設定ダイアログ Ctrl+Alt+Sエディター | 一般 | 自動インポートを選択します。

  2. インポートおよび補完から除外で、除外したいクラスまたはパッケージの名前を追加します。ここで指定したクラスは、候補リストには表示されません。

補完候補がエディターに表示されたら選択することもできます: Alt+Enter を押してそこから除外を選択してください:

Exclude from completion

補完のヒントとテクニック

候補リストを絞り込む

  • 単語の任意の部分(途中のどこかからの文字も含む)を入力するか、ドット区切りの後にコード補完を呼び出すことにより、候補リストを絞り込むことができます。IntelliJ IDEAは、任意の位置に入力した文字を含む候補を表示します。

    これはワイルドカードの使用を不要にします:

    codeCompletionWildcard.png

    CamelCaseまたはsnake_case名の場合は、最初の文字のみを入力してください。IntelliJ IDEAは自動的に頭文字を認識して照合します。

提案を受け入れる

次のいずれかの方法で、リストから提案を受け入れることができます。

  • Enter を押すか、リスト項目をダブルクリックして、キャレットの左側に挿入します。

  • Tab を押して、キャレットから右にある文字を置き換えます。

  • Ctrl+Shift+Enter を使用して、現在のコード構成を構文上正しいものにします(括弧のバランス、欠落している中括弧とセミコロンの追加など)。

特定のキーを使用して、選択した補完候補を挿入することもできます。設定/環境設定ダイアログ Ctrl+Alt+Sエディター | 一般 | コード補完を選択し、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するオプションを選択します。これらのキーは、言語、コンテキストなどに依存します。Javaの場合、このようなキーには Space , Tab , [ および ] , ( および )などが含まれます。

式を否定する

You can negate an expression in Java by pressing ! after you have selected it from the suggestions list. As a result, the expression will be negated:

negate an expression

スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するオプションがコード補完設定ページで有効になっているか、コード補完を明示的に呼び出すか、または候補リスト内の選択を明示的に変更すると、式を否定することができます。

    補完ショートカット

    You can use the following live templates shortcuts for one of the most frequently used statements:

    • sout : System.out.printIn()を印刷する

    • soutm : 現在のクラスとメソッド名を追加する

    • soutp : メソッドのパラメータ名と値を追加する

    • soutv : 最後の変数値を追加する

    リファレンスを表示する

    コード階層を表示する

    You can view code hierarchy when you've selected an entry from the suggestions list:

    • Ctrl+H - 型階層の表示

    • Ctrl+Alt+H - 呼び出し階層を表示します。

    • Ctrl+Shift+H - メソッドの階層を表示します。

    機械学習支援コード補完を使用する

    機械学習モデルを利用して、候補リストで最も適切なアイテムを上位にランク付けできます。

    これを行うには、設定/環境設定ダイアログで Ctrl+Alt+Sエディター | 一般 | コード補完に移動し、機械学習アシスト補完機械学習に基づいたランク補完の提案オプションを有効にします。

      IntelliJ IDEAで補完がどのように機能するかについて詳しくは、このビデオを参照してください。

      トラブルシューティング

      コード補完が機能しない場合は、次のいずれかの理由が考えられます。

      • 省電力モードがオンです(ファイル | 省電力モード)。これをオンにすると、エラー強調表示、オンザフライインスペクション、コード補完などのバックグラウンド操作を排除してラップトップの電力消費を最小限に抑えられます。

      • JDK is not configured for your project.

      • Your file doesn't reside in a content root and is not bound to a build path, so it doesn't get the required class definitions and resources needed for code completion.

      • 補完候補一覧に表示するクラスとメソッドを含むファイルは、プレーンテキストファイルとしてマークされます。

      • External libraries that contain methods that you want to appear in the completion suggestions list are not added as dependencies or global libraries.

      最終更新日: 2020年7月23日

      関連ページ:

      ライブ・テンプレート

      ライブテンプレートを使用して、ループ、条件、さまざまな宣言、印刷ステートメントなどの一般的な構成をコードに挿入します。To expand a code snippet, type the corresponding template abbreviation and press . Keep p...

      ファイルタイプの関連付けを設定する

      IntelliJ IDEAはデフォルトのファイルタイプのセットを認識します。そのようなファイルは、対応する言語の構文に従って解析および強調表示されます。IntelliJ IDEAが認識できないファイルタイプで作業している場合(たとえば、それが独自開発のファイルタイプである場合)、カスタムファイルタイ...

      インテンション・アクション

      エディターで作業するときに、IntelliJ IDEAはコードを分析し、コードを最適化する方法を検索し、潜在的な問題と実際の問題を検出します。As soon as the IDE finds a way to alter your code, it displays a yellow bulb ic...

      自動インポート

      まだインポートしていないクラス、静的メソッド、または静的フィールドを使用している場合は、欠落しているimportステートメントを追加するように指示するポップアップが表示され、手動で追加する必要はありません。提案を受け入れるには を押します。インポート可能なソースが複数ある場合、 を押すと候補のリス...

      スタイル・シート

      IntelliJ IDEAを使用すると、Sass、Less、SCSS、Stylusなど、CSSおよびそれにコンパイルされるさまざまな言語でスタイル定義を記述できます。スタイルシートのドキュメントの検索、ルールセットの作成と移動、変数の導入などもできます。始める前に:設定/環境設定 | プラグインペー...

      React

      Reactは、カプセル化されたコンポーネントから複雑な対話的なユーザーインターフェースを構築するためのJavaScriptライブラリです。ReactオフィシャルWebサイトからライブラリの詳細を学びましょう。IntelliJ IDEAは、Reactと統合され、lintの設定、編集、実行、デバッグ、お...