コード補完
RAD Studio 入門 への移動
コード補完(Ctrl+Space
)は、コード エディタから利用可能な支援機能機能で、容易にコードが完成させられるよう支援します。
コード補完により、サイズ変更可能な "ヒント" ウィンドウが表示され、そこに、コードに追加するための選択肢となる有効な要素が一覧表示されます。 ヒント ウィンドウでは、テキストが入力されるに従い、その文字とシンボルの最初からの文字が一致するものが一覧表示されます。
また、コード補完のヒント ウィンドウ内を右クリックして[名前順]または[スコープ順]を選択することで、ヒント ウィンドウ内の項目の並べ替えを制御できます。
コード補完リストには、さまざまな項目がさまざまな色と書式で表示されます。 たとえば、デフォルトでは:
- キーワードは濃い青
- プロシージャ、関数、プロパティの名前は黒の太字
- フィルタリングの際、一致する文字は下線付きで表示される(これはオフにできます)
コード補完の起動
Automatic code completion is on by default, and options for enabling and disabling Code Completion are located on the Tools > Options > User Interface > Editor Options > Language and click on Code Insight option.
- [コード補完]の[自動起動]が有効になっている場合は、ピリオド(.)を入力すると、Delphi と C++ の両方についてコード補完が起動されます。
- Delphi や C++ でコード補完機能を起動させるための
Ctrl+Space
は、たとえ [自動起動]オプションが支援機能のオプションで無効になっていても、いつでも使用できます。 - [待ち時間]オプションが支援機能のオプションで設定されている場合は、コード補完が起動する前に、待ち時間タイマーが実行されます。
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
キーを押します。次のようなコード補完ウィンドウが表示されます。
Count プロパティを見つけ、Enter
キーを押します。コードは以下のように補完されます。
begin
{ ... }
if Assigned(GViewButtons) then
for I := 0 to GViewButtons.Count - 1 do
begin
{ something }
end;
{ ... }
end;
コード補完の使用
IDE でコード補完を使用するには、特に次のような方法があります。
- クラスで利用可能なプロパティ、メソッド、およびイベントを表示するには、クラスのインスタンス、またはクラスのインスタンスへのポインタを表す変数名の後で、
Ctrl+Space
を押します。 - ポインタ型に対してコード補完を起動するには、まず、そのポインタを逆参照する必要があります。以下に例を示します。
- C++ の場合は次のように入力します。
this->
- Delphi の場合は次のように入力します。
Self.
- C++ の場合は次のように入力します。
- オブジェクトへのポインタに対して矢印(->)を入力します。
- また、非ポインタ型の名前の後にピリオド(.)を入力すると、継承された仮想プロパティ、メソッド、およびイベントのリストを参照できます。以下に例を示します。
- C++ の場合は次のように入力します。
TRect test;test.
- Delphi の場合は次のように入力します。
var test: TRect; begin test.
- C++ の場合は次のように入力します。
- 代入演算子や代入文の開始部分を入力して、
Ctrl+Space
を押すと、その変数に代入可能な値のリストが表示されます。 - Delphi の uses 句や C++ の #include 文で、ユニットやファイルをコード補完することができます。現在提供されるリストには、想定されるファイルやユニットがすべて入っているとは限らない点に注意してください:
- Delphi では、uses 句の内部で、最後のユニットの後にカンマを追加し、
Ctrl+Space
を押します。名前を入力していくことで、ユニットをフィルタリングできます。 - C++ では、"#include<" と入力し、
Ctrl+Space
を押すと、認識されているヘッダーが表示されます。名前を入力していくことで、ヘッダーをフィルタリングできます。
- Delphi では、uses 句の内部で、最後のユニットの後にカンマを追加し、
- C++ の場合は、スコープ演算子(
::
)を入力します。 - 手続き、関数、またはメソッド呼び出しを入力して、
Ctrl+Space
を押すと、入力した変数への代入に有効な引数のリストが表示されます。後に省略記号([...])が付加された項目を選択すると、その代入文に入力された変数と互換性のある関連引数の 2 次リストが表示されます。 - レコード(Delphi の場合)または構造体(C++ の場合)を入力すると、フィールドのリストが表示されます。
- 配列のプロパティ(純粋な配列ではない)を入力して、
Ctrl+Space
を押すと、インデックス式が表示されます。 - C++ では、空のコード行で
Ctrl+Space
を押すと、その他の RTL ユニットのシンボル(現在のユニットで使われていないシンボルも含む)が表示されます。 - In Delphi, the reserved words appear in the Code Completion window if you have enabled Show reserved words on the Tools > Options > User Interface > Editor Options > Language > Code Insight dialog box. 表示される語は、コード補完を起動したときのコンテキストによって決まります。 The current list of Delphi reserved words is available in the Delphi Language Guide (基本的な構文要素).
コード補完のキャンセルまたはコード補完ウィンドウの終了
コード補完を起動すると、カーソルが砂時計になり、IDE が要求処理中であることを示します。
- 要求が完了する前にコード補完要求をキャンセルするには、
Esc
キーを押します。 - コード補完ウィンドウを終了するには、
Esc
キーを押します(または単純に他の場所をクリックします)。
宣言の参照
コード補完ウィンドウが表示されているときに、Ctrl
キーを押したまま、リスト内の任意の識別子をクリックすると、その宣言を参照できます。
また、コード エディタで識別子の上にマウス ポインタを置くと、その識別子が宣言されている場所がヒント ウィンドウに表示されます。Ctrl
キーを押しながらコード内の識別子をポイントし(デフォルトでは、この操作によって青い下線が表示され、カーソルが手の形のポインタに変化します)、(マウスで)クリックすると、その宣言に移動できます。
C++ クラシック コンパイラ を使用している場合は、アプリケーションが既にビルド済み、かつ、プリコンパイル済みヘッダーが作成されている場合に、コード補完機能が最もうまく機能します。 それ以外の場合は、コンパイラが必要な情報を生成するまで待つ必要があります。 [PCH Usage] オプション([プロジェクト|オプション...|C++ コンパイラ|プリコンパイル済みヘッダー] ダイアログ ボックス)を設定することが推奨されます。 [生成し使用する]を選択します。
[C++ Clang コンパイラ]の使用時、支援機能は、各 C++ ファイルをスタンド アロンでコンパイルします。プリコンパイル済みヘッダー PCH は使用しません。コード補完には、使用するものをインクルードした整形済み C++ コードが必要です。ユニットが、PCH に依存する代わりに依存しているすべてのヘッダーをインクルードしていない場合、非間接インクルードが発生し、支援機能はユニットの解析に失敗し、コード補完の結果を提供できません。この問題を解決するには、ファイルの一番上から開始した、エラー インサイトの結果をレビューします。エラーに従い、必要と指示されたファイルをインクルードし、C++ コードを改善します。