CLion 2025.1 ヘルプ

コード補完

基本コード補完は、可視性スコープ内で名前、タイプ、キーワードを補完するのに役立ちます。

CLion はコンテキストを分析し、現在のキャレット位置から到達可能な選択肢を提案します。候補にはライブテンプレートも含まれます。補完機能は英語以外のキーボードレイアウトでも利用できます。

基本補完を呼び出す

  • デフォルトでは、CLion は入力時に自動的にコード補完ポップアップを表示します。

    あるいは、Ctrl+Space を押すか、メインメニューからコード | コード補完 | 基本を選択することもできます。

    Basis completion popup
  • コード補完はカスタムファイルタイプで使用できます。ただし、CLion はそのようなファイルの構造を認識せず、現在のコンテキストに適切かどうかに関係なくオプションを提案します。

リストからの提案を受け入れる

  • Enter を押すか、該当するリストアイテムをダブルクリックして、キャレットの左側に挿入します。

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

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

  • 特定のキーとカスタム文字を使用して、選択した補完候補を承認します。これらの機能を有効にするには、エディター | 一般 | コード補完の設定ページ(Ctrl+Alt+S)に移動し、以下の操作を行ってください。

    1. 特定のキーを使用するには、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するチェックボックスをオンにします。これらのキーは、言語、コンテキストなどによって異なります。

    2. カスタム文字も使用するには、補完を受け入れるための追加文字フィールドに文字を入力します。

型一致補完

スマート型一致コード補完は候補リストをフィルタリングし、現在のコンテキストに該当するタイプのみを表示します。

型一致補完を呼び出す

  • 型一致の補完を呼び出すには、入力を開始して Ctrl+Shift+Space を押すか、メインメニューからコード | コード補完 | 型一致を選択します。

    Smart type completion

ステートメント補完

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

ステートメント補完は次の言語構成で動作します。

  • 型および型メンバー: クラス、名前空間、列挙。

  • ステートメント: if/elsewhiledoforswitch/casetry/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*/ }

ヒッピー補完

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

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

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

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

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

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

    Expand word
  2. 提案を受け入れるか、Alt キーを押したまま、必要な単語が見つかるまで \ を押し続けます。

機械学習による補完ランキング

CLion を使用すると、他のユーザーが同様の状況で行った選択に基づいて、補完の提案に優先順位を付けることができます。

ML 補完メカニズムは新しい要素を追加するのではなく、コードから取得した要素を順序付けます。データはどこにも公開されず、ローカルで収集されます。

ML 補完ランキングを有効にする

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。

  2. 機械学習支援による補完で、機械学習に基づいてコード補完の候補を並び替えオプションを有効にし、ML 補完を使用する言語を選択します。

    ML-assisted completion settings

関連性マーカーを有効にする

  1. Ctrl+Alt+S を押して設定を開き、エディター | 一般 | コード補完を選択します。

  2. 次のオプションを有効にします。

    ML completion markers settings
    • 補完ポップアップで順位の変更箇所に印を付ける : Machine Learning ranking Up および Machine Learning ranking Down アイコンを使用して、提案の関連性が増加しているか減少しているかを示し、その結果、提案が候補リストを上下に移動したことを示します。

    • 補完ポップアップで最も関連性の高い項目に印を付ける : ML relevant proposal アイコンを使用して、リストで最も適切な提案を示します。

    候補リストは次のようになり、アイコンは並べ替えられたことを示し、最も関連性の高いアイテムが表示されます。

    ML-assisted completion with markers

コード補完設定

コード補完オプションを構成するには、エディター | 一般 | コード補完設定ページ Ctrl+Alt+S に移動します。

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

項目

説明

大 / 小文字を区別する

補完候補で大文字と小文字を考慮するかどうかを選択します。最初の文字の大文字と小文字を一致させるか、すべての文字を一致させるかを選択します。

単一の候補を自動的に挿入

基本的でスマートな型一致補完の提案が 1 つだけある場合は、コードを自動的に補完します。

候補をアルファベット順に並べ替え

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

この動作は、候補リストの をクリックして名前で並べ替えオプションを切り替えることにより、いつでも変更できます。

入力時に候補を表示する

補完を明示的に呼び出すことなく、候補リストを自動的に呼び出す場合に選択します。このオプションはデフォルトで有効になっています。

ドキュメントのポップアップ表示までの時間

選択すると、現在ルックアップリストでハイライトされているクラス、メソッド、フィールドのドキュメントを含む、候補リストの各項目のポップアップが自動的に表示されます。

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

可能な場合は丸括弧を自動的に挿入

このオプションが有効になっている場合、関数 / メソッドを補完すると、CLion は開き括弧と閉じ括弧のペアを自動的に挿入します。

チェックボックスをオフにすると、括弧の挿入が自動的に抑制されます。

Enter の代わりに開き括弧 ( を使用して、補完リストから選択した項目を適用すると、オプションがオンかオフかに関係なく、括弧が自動的に挿入されます。

Enter の代わりに開き括弧 ( を使用して、補完リストから選択した項目を適用するには、設定ダイアログ (Ctrl+Alt+S) を開き、エディター | 一般 | コード補完に移動して、スペース、ドット、その他のコンテキスト依存キーを押して選択した候補を挿入するチェックボックスを選択します。

詳細は、特定のキーを使用して提案を挿入するを参照してください。

基本補完でインポート項目を表示する

使用したいシンボルが、対応する #include を含む現在のファイルにインポートされていないが、標準ライブラリまたはソリューション内の他の場所で定義されている場合、Ctrl+Alt+Space を押すと、補完候補でこのシンボルをすばやく見つけることができます。

このオプションを使用して、インポートシンボルの提案を自動および基本補完の候補リストに含めることができます。

インポートアイテムの動作

常に include ディレクティブを挿入するか、前方宣言を追加するオプションを含むメニューを表示するようにインポート補完動作を構成します。

メンバー補完で無料機能を表示する

一般的な C++ コーディング手法の 1 つは、メンバー関数よりも非メンバーの非フレンド関数を優先することです。これは、カプセル化を強化し、クラスインターフェースを可能な限り最小限に保つための優れた方法です。式の後にドット . または矢印 -> を入力すると、その式を最初のパラメーターとして受け入れる自由関数がメンバー関数の後の補完リストで提案されます。

補完候補に無料の関数を含めたくない場合は、このチェックボックスをオフにします。

機械学習支援による補完

機械学習に基づいてコード補完の候補を並び替え

機械学習モデルを使用して、最も適切な項目を候補リストの上位に表示したい場合は、このオプションを選択します。機械学習に基づく提案を有効にする言語を選択してください。

補完ポップアップで順位の変更箇所に印を付ける

Machine Learning ranking Up および Machine Learning ranking Down アイコンを使用して、提案の関連性が増加しているか減少しているかを示し、その結果、提案が候補リストの上下に移動したことを示します。

補完ポップアップで最も関連性の高い項目に印を付ける

ML relevant proposal アイコンを使用して、リストで最も適切な提案を示します。

JavaScript

型ベース補完のみ

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

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

Null 許容型に対するオプショナルチェイニングの使用を提案

デフォルトでは、CLion はオプショナルチェイニング演算子 (?) でシンボルの補完を提案します。この動作を抑制するには、このチェックボックスをオフにします。

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

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

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

名前の補完

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

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

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

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

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

パラメーター情報

パラメーター情報ポップアップを表示する (ミリ秒)

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

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

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

完全なメソッドシグネチャーを表示する

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

SQL

オブジェクトを提案する

オブジェクトが提案される場所を選択します:

  • 現在の検索パスのみ : コンソールに選択されたスキーマのみ。

    スキーマの選択の詳細については、クエリコンソールのデフォルトスキーマを設定するを参照してください。

  • 現在の範囲 : コンソールおよびシステムスキーマに対して現在選択されているスキーマ (たとえば、PostgreSQL の pg_catalog)。

  • すべての使用可能なスキーマ : すべてのイントロスペクトされたスキーマ。

Objects suggested from the current path only
Objects suggested from all the schemas
Objects suggested from all the schemas

オブジェクトを修飾する

オブジェクトをデータベース、スキーマ、テーブルとビュー、テーブルとビューの別名で修飾するタイミングを選択します。

Objects always qualified with tables
Objects never qualified with tables

オブジェクトを修飾する

特定のケースでオブジェクトをいつ修飾するかを選択します。

Objects in JOIN completions always qualified
Objects in JOIN completions never qualified

JOIN の補完にエイリアスを使用する

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

Use aliases in completion for JOIN

自動生成された ON 句のオペランドの順序を逆にする

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

Invert order of operands in auto-generated ON clause

名前の一致に基づいて厳密でない外部キーを提案する

JOIN ステートメントの可能なコード補完提案のリストを生成します。コード補完リストには、JOIN ステートメントのテーブルの列と同じ名前を持つ他のテーブルの列の提案が含まれます。

このオプションのデバッグルールの詳細については、仮想外部キーのデバッグルールを参照してください。

Suggest Non Strict Foreign Keys Based On The Name Matching is On
Suggest Non Strict Foreign Keys Based On The Name Matching is Off

テーブル名を補完するときにエイリアスを自動的に追加する

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

Automatically add aliases when completing table names

テーブル名の後にエイリアス名を提案

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

Suggest alias names in completion after table names

カスタムエイリアス (テーブル)

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

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

候補リストを絞り込む

  • 単語の一部(途中の文字でも可)を入力するか、ドット区切りの後にコード補完を呼び出すことによって、候補リストを絞り込みます。

    CLion は、入力した文字の位置に関係なく、入力した文字を含む候補を表示します。これにより、ワイルドカードの使用は不要になります。

    Code completion wild cards

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

リファレンスを表示する

  • 候補リストのエントリを選択するときに Ctrl+Shift+I を押すと、を使用できます。

    Quick Definition for an item in the suggestion list
  • 候補リストのエントリを選択するときに Ctrl+Q を押すと、クイックドキュメントビューを使用できます。

    Quick documentation for an item in the suggestion list

コード階層を表示する

候補リストからエントリを選択すると、コード階層を表示できます。

  • Ctrl+H : 型階層の表示

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

トラブルシューティング

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

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

  • ファイルはコンテンツルート内に存在しないため、コード補完に必要なクラス定義とリソースを取得できません。

  • 完全に表示したいシンボルを含むファイルは、インデックス作成から除外されます。

  • 補完オプションの収集に時間がかかりすぎる場合、コード補完ポップアップは自動的に表示されないことがあります。例: コンピューターが別のタスクでビジー状態の場合。この場合でも、Ctrl+Space を介して補完ポップアップを手動でアクティブ化できます。

関連ページ:

ライブテンプレート

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

ファイルタイプ

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

スキーマ

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

仮想外部キー

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

クイックドキュメント

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

コード階層

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