コード補完
基本コード補完は、可視性スコープ内で名前、タイプ、キーワードを補完するのに役立ちます。
CLion はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します。候補にはライブテンプレートも含まれます。補完機能は英語以外のキーボードレイアウトでも利用できます。
基本補完を呼び出す
デフォルトでは、CLion は入力時に自動的にコード補完ポップアップを表示します。
あるいは、Ctrl+Space を押すか、メインメニューから
を選択することもできます。
コード補完はカスタムファイルタイプで使用できます。ただし、CLion はそのようなファイルの構造を認識せず、現在のコンテキストに適切かどうかに関係なくオプションを提案します。
リストからの提案を受け入れる
Enter を押すか、該当するリストアイテムをダブルクリックして、キャレットの左側に挿入します。
Tab を押して、キャレットから右にある文字を置き換えます。
Ctrl+Shift+Enter を使用して、現在のコード構成を構文上正しいものにします(括弧のバランス、欠落している中括弧とセミコロンの追加など)。
特定のキーとカスタム文字を使用して、選択した補完候補を承認します。これらの機能を有効にするには、エディター | 一般 | コード補完の設定ページ(Ctrl+Alt+S)に移動し、以下の操作を行ってください。
特定のキーを使用するには、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するチェックボックスをオンにします。これらのキーは、言語、コンテキストなどによって異なります。
カスタム文字も使用するには、補完を受け入れるための追加文字フィールドに文字を入力します。
型一致補完
スマート型一致コード補完は候補リストをフィルタリングし、現在のコンテキストに該当するタイプのみを表示します。
型一致補完を呼び出す
型一致の補完を呼び出すには、入力を開始して Ctrl+Shift+Space を押すか、メインメニューから
を選択します。
ステートメント補完
文の補完を使用して、構文的に正しいコード構成体を作成できます。必要な構文要素(括弧、中括弧、セミコロン)を挿入して、次のステートメントの入力を開始できる位置に移動します。ステートメント補完を起動するには、コード構成体の入力を開始して Ctrl+Shift+Enter を押します。
ステートメント補完は次の言語構成で動作します。
型および型メンバー: クラス、名前空間、列挙。
ステートメント:
if/else
、while
、do
、for
、switch/case
、try/catch
関数宣言を補完する
関数宣言の入力を開始し、開き括弧の後に Ctrl+Shift+Enter を押します。
ステートメント補完より前
ステートメント補完の後
void myFunc(/*caret*/void myFunc();/*caret*/
コード構成を補完する
コード構成の入力を開始し、Ctrl+Shift+Enter を押します。
CLion は、構成を自動的に補完し、必要な句読点を追加します。キャレットは次の編集位置に配置されます。
ユースケース
ステートメント補完より前
ステートメント補完の後
クラス宣言
class NewClass /*caret*/class NewClass { /*caret*/ };switch
句switch/*caret*/switch (/*caret*/) {}switch (i /*caret*/) {}switch (i) { /*caret*/ }while
ステートメントwhile/*caret*/while (/*caret*/) {}while (n > 0/*caret*/) {}while (n > 0) { /*caret*/ }if
ステートメントif /*caret*/if (/*caret*/) {}if (n > 0/*caret*/) {}if (n > 0) { /*caret*/ }for
ステートメントfor /*caret*/for (/*caret*/) {}for (int i = 0; i < 10; ++i/*caret*/) {}for (int i = 0; < 10; ++i) { /*caret*/ }try-catch ステートメント
try /*caret*/try { /*caret*/ }catch /*caret*/catch (/*caret*/) { }catch (const std::exception/*caret*/) {}catch (const std::exception) { /*caret*/ }
ヒッピー補完
ヒッピー補完は、目に見える範囲でテキストを分析し、現在のコンテキストから提案を生成する補完エンジンです。それは現在開いているファイルのどれからでもどんな単語でも補完するのに役立ちます。
キャレットの文字列を既存の単語に展開する
最初の文字列を入力し、次のいずれかを実行します。
Alt+/ を押すか、
を選択して、キャレットの前に一致する単語を検索します。Alt+Shift+/ を押すか、
を選択して、キャレットの後ろにある他の開いているファイルで一致する単語を検索します。
提案された最初の値が表示され、プロトタイプがソースコードでハイライトされます。
提案を受け入れるか、Alt キーを押したまま、必要な単語が見つかるまで \ を押し続けます。
機械学習による補完ランキング
CLion を使用すると、他のユーザーが同様の状況で行った選択に基づいて、補完の提案に優先順位を付けることができます。
ML 補完メカニズムは新しい要素を追加するのではなく、コードから取得した要素を順序付けます。データはどこにも公開されず、ローカルで収集されます。
ML 補完ランキングを有効にする
Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。
機械学習支援による補完で、機械学習に基づいてコード補完の候補を並び替えオプションを有効にし、ML 補完を使用する言語を選択します。
関連性マーカーを有効にする
Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。
次のオプションを有効にします。
補完ポップアップで順位の変更箇所に印を付ける :
および
アイコンを使用して、提案の関連性が増加しているか減少しているかを示し、その結果、提案が候補リストを上下に移動したことを示します。
補完ポップアップで最も関連性の高い項目に印を付ける :
アイコンを使用して、リストで最も適切な提案を示します。
候補リストは次のようになり、アイコンは並べ替えられたことを示し、最も関連性の高いアイテムが表示されます。
コード補完設定
コード補完オプションを構成するには、エディター | 一般 | コード補完設定ページ Ctrl+Alt+S に移動します。
次の設定を選択できます。
項目 | 説明 | |
---|---|---|
大 / 小文字を区別する | 補完候補で大文字と小文字を考慮するかどうかを選択します。最初の文字の大文字と小文字を一致させるか、すべての文字を一致させるかを選択します。 | |
単一の候補を自動的に挿入 | 基本的でスマートな型一致補完の提案が 1 つだけある場合は、コードを自動的に補完します。 | |
候補をアルファベット順に並べ替え | 候補リスト内の項目を関連性によって並べ替えるのではなく、アルファベット順に並べ替える場合に選択します。 この動作は、候補リストの | |
入力時に候補を表示する | 補完を明示的に呼び出すことなく、候補リストを自動的に呼び出す場合に選択します。このオプションはデフォルトで有効になっています。 | |
ドキュメントのポップアップ表示までの時間 | 選択すると、現在ルックアップリストでハイライトされているクラス、メソッド、フィールドのドキュメントを含む、候補リストの各項目のポップアップが自動的に表示されます。 右側のフィールドで、ポップアップが表示されるまでの遅延(ミリ秒)を指定します。 | |
可能な場合は丸括弧を自動的に挿入 | このオプションが有効になっている場合、関数 / メソッドを補完すると、CLion は開き括弧と閉じ括弧のペアを自動的に挿入します。 チェックボックスをオフにすると、括弧の挿入が自動的に抑制されます。 Enter の代わりに開き括弧 Enter の代わりに開き括弧 詳細は、特定のキーを使用して提案を挿入するを参照してください。 | |
基本補完でインポート項目を表示する | 使用したいシンボルが、対応する このオプションを使用して、インポートシンボルの提案を自動および基本補完の候補リストに含めることができます。 | |
インポートアイテムの動作 | 常に | |
メンバー補完で無料機能を表示する | 一般的な C++ コーディング手法の 1 つは、メンバー関数よりも非メンバーの非フレンド関数を優先することです。これは、カプセル化を強化し、クラスインターフェースを可能な限り最小限に保つための優れた方法です。式の後にドット 補完候補に無料の関数を含めたくない場合は、このチェックボックスをオフにします。 | |
機械学習支援による補完 | ||
機械学習に基づいてコード補完の候補を並び替え | 機械学習モデルを使用して、最も適切な項目を候補リストの上位に表示したい場合は、このオプションを選択します。機械学習に基づく提案を有効にする言語を選択してください。 | |
補完ポップアップで順位の変更箇所に印を付ける | | |
補完ポップアップで最も関連性の高い項目に印を付ける | | |
JavaScript | ||
型ベース補完のみ | デフォルトでは、CLion は、型に関係なく、シンボルの補完を提案します。このアプローチでは、複雑な場合、リストに複数の補完バリアントが表示されます。 補完をより正確にするには、このオプションを選択します。補完リストは、CLion の推論に強く依存します。その結果、推論が不十分な場合にリストが空のままになることがあります。 | |
Null 許容型に対するオプショナルチェイニングの使用を提案 | デフォルトでは、CLion はオプショナルチェイニング演算子 (?) でシンボルの補完を提案します。この動作を抑制するには、このチェックボックスをオフにします。 | |
補完時にメソッド本体をオーバーライド用に展開する | デフォルトでは、親クラスまたはインターフェースからメソッドをオーバーライドし、補完候補のリストからこのメソッドを選択する場合、CLion はパラメーターを自動的に追加し、可能であれば このチェックボックスをオフにすると、補完時にオーバーライドのメソッド本体が自動的に生成されなくなります。 | |
名前の補完 |
| |
パラメーター情報 | ||
パラメーター情報ポップアップを表示する (ミリ秒) | このチェックボックスをオンにすると、エディターで左括弧が入力されるか、候補リストからメソッドが選択されたときに、CLion が利用可能なすべてのメソッドシグネチャーを含むポップアップを自動的に表示します。 右側のテキストフィールドに、ポップアップウィンドウが表示されるまでの遅延時間(ミリ秒単位)を指定します。 このチェックボックスが選択されていない場合は、Ctrl+P を使用してパラメーター情報を表示します。 | |
完全なメソッドシグネチャーを表示する | このチェックボックスをオンにすると、パラメーター情報にメソッド名や返された型などの完全なシグネチャーが表示されます。 | |
SQL | ||
オブジェクトを提案する | オブジェクトが提案される場所を選択します:
![]() ![]() ![]() | |
オブジェクトを修飾する | オブジェクトをデータベース、スキーマ、テーブルとビュー、テーブルとビューの別名で修飾するタイミングを選択します。 ![]() ![]() | |
オブジェクトを修飾する | 特定のケースでオブジェクトをいつ修飾するかを選択します。 ![]() ![]() | |
JOIN の補完にエイリアスを使用する | ![]() | |
自動生成された ON 句のオペランドの順序を逆にする | ![]() | |
名前の一致に基づいて厳密でない外部キーを提案する | このオプションのデバッグルールの詳細については、仮想外部キーのデバッグルールを参照してください。 ![]() ![]() | |
テーブル名を補完するときにエイリアスを自動的に追加する | テーブル名のエイリアスを作成します。 ![]() | |
テーブル名の後にエイリアス名を提案 | コード補完(Ctrl+Space)を使用するときにテーブル名のエイリアスを提案します。 ![]() | |
カスタムエイリアス (テーブル) | このテーブルに使用するテーブル名とエイリアスを追加できます。テーブルとエイリアスのペアを追加するには、エイリアスの追加ボタン( |
補完のヒントとテクニック
候補リストを絞り込む
単語の一部(途中の文字でも可)を入力するか、ドット区切りの後にコード補完を呼び出すことによって、候補リストを絞り込みます。
CLion は、入力した文字の位置に関係なく、入力した文字を含む候補を表示します。これにより、ワイルドカードの使用は不要になります。
CamelCase または snake_case 名の場合は、最初の文字のみを入力してください。CLion は自動的に頭文字を認識して照合します。
リファレンスを表示する
候補リストのエントリを選択するときに Ctrl+Shift+I を押すと、を使用できます。
候補リストのエントリを選択するときに Ctrl+Q を押すと、クイックドキュメントビューを使用できます。
コード階層を表示する
候補リストからエントリを選択すると、コード階層を表示できます。
Ctrl+H : 型階層の表示
Ctrl+Alt+H : 呼び出し階層を表示します。
トラブルシューティング
コード補完が機能しない場合は、次のいずれかの理由が考えられます。
省電力モードがオンです( )。これをオンにすると、エラーハイライト、オンザフライインスペクション、コード補完などのバックグラウンド操作を排除してラップトップの電力消費を最小限に抑えられます。
ファイルはコンテンツルート内に存在しないため、コード補完に必要なクラス定義とリソースを取得できません。
完全に表示したいシンボルを含むファイルは、インデックス作成から除外されます。
補完オプションの収集に時間がかかりすぎる場合、コード補完ポップアップは自動的に表示されないことがあります。例: コンピューターが別のタスクでビジー状態の場合。この場合でも、Ctrl+Space を介して補完ポップアップを手動でアクティブ化できます。
関連ページ:

ライブテンプレート
ライブテンプレートを使用して、ループ、条件、宣言、print ステートメントなどの一般的な構造をコードに挿入します。コードスニペットを展開するには、対応するテンプレートの省略形を入力してを押します。を押し続けると、テンプレート内の 1 つの変数から次の変数に移動します。を押して、前の変数に移動します。次のデモは、ライブテンプレートの使用箇所と、関数の抽出、パラメーターの導入、ラムダパラメーターを抽出するリファクタリングを示しています。ライブテンプレートの種類:次のタイプのライブテンプレー

ファイルタイプ
さまざまな言語やテクノロジーを表現するファイルの言語固有の機能 (構文のハイライトやコード分析など) については、CLion はファイルタイプのリストを保持しており、各ファイルタイプは言語サービスを 1 つ以上のファイル名パターンにリンクします。ファイルタイプのデフォルトのリストには、関連するすべてのファイル名パターンが含まれていますが、カスタム言語ファイルに新しいファイルタイプを追加したり、既存のファイルタイプに関連付けられたファイル名パターンを変更したりできます。エディターでファイルを開くと...

スキーマ
CLion は、表示対象として選択したスキーマを表示します。これは、スキーマが多数ある場合に便利です。また、この方法を使用すると、イントロスペクションするスキーマを定義できます。イントロスペクション中、CLion はデータベースからメタデータをロードし、後でこのデータを使用します。スキーマ () は、データベースツールウィンドウにあります。その他のノードおよびオブジェクトアイコンのリファレンスについては、データベースツールウィンドウトピックのデータソースとその要素の章を参照してください。表示オプ...

仮想外部キー
明示的に定義された外部キーを使用したくない場合があります。外部キーを使用しない理由には、パフォーマンスの問題(CRUD 操作で)、データベースの特性(ClickHouse や Apache Cassandra などのデータベースは外部キーをサポートしません)、一時テーブルの使用(テスト用)、個人的な理由などがあります。この場合でも、データベースコードを変更せずに外部キーリレーションを作成できます。これを行うには、仮想外部キーを使用します。仮想外部キーは、IDE 仮想オブジェクトです。外部キーの代...

クイックドキュメント
クイックドキュメントポップアップは、キャレットのコード要素に関する詳細情報を取得できます。CLion は、マウスオーバー時にポップアップでクイックドキュメントを自動的に表示します。呼び出す要素に応じて、ポップアップには次のものが含まれます。関数のシグネチャーの詳細とコードのドキュメント (通常のコメントまたは Doxygen コメント):、推論される型:、構造体とクラスの詳細をコピー / 移動します。以下の例では、ポップアップに含まれる TODO コメントを参照することもできます。標準の関数、構造体、別...

コード階層
CLion では、以下の階層を構築することができます。型階層は、クラスの親クラスと子クラスを示します。ビルドするには、エディターの目的のクラスにキャレットを配置し、メインメニューからを呼び出します(またはを押します)。呼び出し階層は、関数の呼び出し元(スーパータイプ)または呼び出し先(サブタイプ)を表示します。ビルドするには、エディターで関数を選択し、メインメニューからを呼び出します (またはを押します)。インポート階層は、現在のファイルが含まれている場所を示し、現在のファイルに含まれている...