コード補完

提供: RAD Studio
移動先: 案内検索

RAD Studio 入門 への移動


コード補完(Ctrl+Space)は、コード エディタで利用可能なコード インサイト機能の 1 つで、コードを簡単に完成させます。

コード補完により、サイズ変更可能な "ヒント" ウィンドウが表示され、そこに、コードに追加するための選択肢となる有効な要素が一覧表示されます。 ヒント ウィンドウでは、テキストが入力されるに従い、その文字とシンボルの最初からの文字が一致するものが一覧表示されます。

また、コード補完のヒント ウィンドウ内を右クリックして[名前順]または[スコープ順]を選択することで、ヒント ウィンドウ内の項目の並べ替えを制御できます。

コード補完リストには、さまざまな項目がさまざまな色と書式で表示されます。 たとえば、デフォルトでは:

  • キーワードは濃い青
  • プロシージャ、関数、プロパティの名前は黒の太字
  • フィルタリングの際、一致する文字は下線付きで表示される(これはオフにできます)

コード補完の起動

自動コード補完は、デフォルトで有効になっています。コード補完を有効/無効にするオプションは、[ツール|オプション...|エディタ設定|言語]にあり、支援機能 オプションをクリックします。

  • コード補完の[自動起動]が有効になっている場合、ピリオド(.)や開き括弧(つまり、メソッド呼び出しの開始部分)を入力すると、Delphi と C++ のどちらでも、コード補完が呼び出されます。
  • たとえ[自動起動]オプションが[コード インサイト]オプションで無効になっていても、Ctrl+Space を使用すれば、Delphi および C++ でいつでもコード補完を起動できます。
  • コード インサイトのオプションで[待ち時間]オプションが設定されている場合、コード補完が起動する前に待ち時間タイマが実行されます(カーソルが回転します)。

macOS で C++ のコード補完を使用するには初回にコンパイルする必要あり: コード補完を使用するには、macOS ターゲット プラットフォーム向けの C++ デスクトップ プロジェクトを少なくとも 1 回はコンパイルしている必要があります。 プロジェクトをコンパイルする前に、お使いの環境が、「macOS 用の開発環境のセットアップ」で説明している要件をすべて満たしていることを確認します。

プロジェクトをコンパイルする際、RAD Studio はプリコンパイル済みヘッダー ファイルmyProject.pch など)が C:\Users\<user>\Documents\Embarcadero\Studio\Projects\OSX32 フォルダに作成されます。projectname.pch ファイルを誤って削除した場合、プロジェクトを再度コンパイルするまでは、プロジェクトにコード補完は使用できません。

コード補完ウィンドウ

このセクションでは、短いコード ブロックのコード補完ウィンドウについて説明します。たとえば、一連のボタンがあるとしましょう。

var
  GViewButtons: TObjectList<TToolButton>;

アプリケーションでは、この一連のボタンを for ループで 1 つずつ処理する必要がありますが、ボタンの数がわからないとします。この場合、コード ブロックは次のようになります。

begin
  { ... }

  if Assigned(GViewButtons) then
    for I := 0 to GViewButtons. - 1 do
    begin
      { something }
    end;

  { ... }
end;

GViewButtons 文の後の .(ピリオド文字)の次にカーソルを移動し、Ctrl+Space キーを押します。次のようなコード補完ウィンドウが表示されます。

CodeCOmpletionWindow10.4.1.png

ヒント: 標準ウィンドウの通常のサイズ変更と同じように右下隅をマウスでドラッグすることで、コード補完ウィンドウのサイズを変更できます。

Count プロパティを見つけ、ENTER または TAB を押します。コードは以下のように補完されます。

begin
  { ... }

  if Assigned(GViewButtons) then
    for I := 0 to GViewButtons.Count - 1 do
    begin
      { something }
    end;

  { ... }
end;

RAD Studio 12.0 以降では、コード補完ウィンドウのフッター セクションには、補完の呼び出し方に応じて、使用できるシンボルが含まれています。

タイプ 説明

承認キー

現在選択されている項目を受け入れて補完リストに挿入するキーを示します。

リストのナビゲーション

補完リスト内の選択を変更するために使用できるキーで、上矢印と下矢印のアイコンがあります。

キャンセル

コードを挿入せずに補完リストを閉じるキーを示します。

コード補完の使用

IDE でコード補完を使用するには、特に次のような方法があります。

  • クラスで利用可能なプロパティ、メソッド、およびイベントを表示するには、クラスのインスタンス、またはクラスのインスタンスへのポインタを表す変数名の後で、Ctrl+Space を押します。 [自動呼び出し]がオンになっている場合は、入力すると自動的に表示されます。
  • ポインタ型に対してコード補完を起動するには、まず、そのポインタを逆参照する必要があります。以下に例を示します。
    • C++ の場合は次のように入力します。this->
    • Delphi の場合は次のように入力します。Self.
  • オブジェクトへのポインタに対して矢印(->)を入力します。
  • また、非ポインタ型の名前の後にピリオド(.)を入力すると、継承された仮想プロパティ、メソッド、およびイベントのリストを参照できます。以下に例を示します。
    • C++ の場合は次のように入力します。TRect test;test.
    • Delphi の場合は次のように入力します。var test: TRect; begin test.
  • 代入演算子や代入文の開始部分を入力して、Ctrl+Space を押すと、その変数に代入可能な値のリストが表示されます。
  • Delphi の uses 句や C++ の #include 文で、ユニットやファイルをコード補完することができます。現在提供されるリストには、想定されるファイルやユニットがすべて入っているとは限らない点に注意してください:
    • Delphi では、uses 句の内部で、最後のユニットの後にカンマを追加し、Ctrl+Space を押します。名前を入力していくことで、ユニットをフィルタリングできます。
    • C++ では、"#include<" と入力し、Ctrl+Space を押すと、認識されているヘッダーが表示されます。名前を入力していくことで、ヘッダーをフィルタリングできます。
  • C++ の場合は、スコープ演算子(::)を入力します。
  • 手続き、関数、またはメソッド呼び出しを入力して、Ctrl+Space を押すと、入力した変数への代入に有効な引数のリストが表示されます。後に省略記号([...])が付加された項目を選択すると、その代入文に入力された変数と互換性のある関連引数の 2 次リストが表示されます。
  • レコード(Delphi の場合)または構造体(C++ の場合)を入力すると、フィールドのリストが表示されます。
  • 配列のプロパティ(純粋な配列ではない)を入力して、Ctrl+Space を押すと、インデックス式が表示されます。
  • C++ では、空のコード行で Ctrl+Space を押すと、その他の RTL ユニットのシンボル(現在のユニットで使われていないシンボルも含む)が表示されます。
  • Delphi では、[ツール|オプション...|エディタ|言語|支援機能]ダイアログ ボックスの[予約語を表示]が有効になっていると、コード補完ウィンドウに予約語が表示されます。 表示される語は、コード補完を起動したときのコンテキストによって決まります。 Delphi 予約語の現在のリストは、『Delphi 言語ガイド』(基本構文要素)に記載されています。

コード補完のキャンセルまたはコード補完ウィンドウの終了

  • コード補完ウィンドウを終了するには、Esc キーを押すか、ウィンドウの外をクリックします。

宣言の参照

コード補完ウィンドウが表示されているときに、Ctrl キーを押したまま、リスト内の任意の識別子をクリックすると、その宣言を参照できます。

また、コード エディタで識別子の上にマウス ポインタを置くと、その識別子が宣言されている場所がヒント ウィンドウに表示されます。Ctrl キーを押しながらコード内の識別子をポイントし(デフォルトでは、この操作によって青い下線が表示され、カーソルが手の形のポインタに変化します)、(マウスで)クリックすると、その宣言に移動できます。

メモ: 支援機能は、コンパイル ユニットでのみ動作します。 コード補完機能は、<spanuses 句のすべてのユニットに含まれる類似の名前の定数に基づいて、WM_xxx、CM_xxx、および CN_xxx 形式のメッセージ メソッドをサポートします。
メモ: C++ クラシック コンパイラ を使用している場合は、アプリケーションが既にビルド済み、かつ、プリコンパイル済みヘッダーが作成されている場合に、コード補完機能が最もうまく機能します。 それ以外の場合は、コンパイラが必要な情報を生成するまで待つ必要があります。 [PCH Usage] オプション([プロジェクト|オプション...|C++ コンパイラ|プリコンパイル済みヘッダー] ダイアログ ボックス)を設定することが推奨されます。 [生成し使用する]を選択します。
[C++ Clang コンパイラ]の使用時、支援機能は、各 C++ ファイルをスタンド アロンでコンパイルします。プリコンパイル済みヘッダー PCH は使用しません。コード補完には、使用するものをインクルードした整形済み C++ コードが必要です。ユニットが、PCH に依存する代わりに依存しているすべてのヘッダーをインクルードしていない場合、非間接インクルードが発生し、支援機能はユニットの解析に失敗し、コード補完の結果を提供できません。この問題を解決するには、ファイルの一番上から開始した、エラー インサイトの結果をレビューします。エラーに従い、必要と指示されたファイルをインクルードし、C++ コードを改善します。

コード キーワード

コード補完には、補完リストに言語キーワードが含まれています。

キーワードは識別子よりも先に自動選択される点に注意してください。 これは、入力した内容がコード補完によって自動的に呼び出される場合でも、それが有効である限り正しく完了することを意味します。

Code Keywords.png

キーワード(予約語)が補完リストに含まれないようにすることができます。これを行う場合は、補完の自動呼び出しもオフにして、[ドットのみ]に変更することをお勧めします。

コード テンプレート

コード テンプレートは、型宣言など、特定のユニット領域にのみ表示されるように構成できます。

ヒント:

テンプレートでこれを使用したい場合、テンプレートに 'context' フラグを追加します:

  • memberdecl: TFoo = class | end;
  • methoddecl: procedure | または function |
  • decl: var | または const |
  • typedecl: type |
  • methodbody: begin | end;
垂直バー シンボル (|) は、適用される場所、またはどこでも適用される any を指定します。
警告: テンプレートがキーワードと同じ名前を持っていた場合 (「if」など)、そのテンプレートはデフォルトで自動的に選択されなくなります。

関連項目