スマート・エディット機能とは,C/C++ソース・ファイルをコーディング中に,関数情報や変数情報,および関数の引数情報などをリスト表示することにより,ユーザの入力を補完する機能です。
スマート・エディット機能では,次の情報の入力補完を行います。
-  | クラスメンバ関数(C++ソース・ファイルを対象とする場合のみ)【CC-RX】  | 
 
-  | クラスメンバ変数(C++ソース・ファイルを対象とする場合のみ)【CC-RX】  | 
 
注意 1.  | この機能は,CS+が提供するビルド・ツール(CC-RH/CC-RX/CC-RL)を使用している場合のみサポートされる機能です(外部ビルド・ツールを使用している場合,この機能は無効となります)。  | 
 
注意 2.  | 混合表示モードを選択している場合,この機能は無効となります。  | 
 
 
スマート・エディット機能は,次の表示を行います。
 
(1)  関数/変数/関数の引数候補
(2)  関数/変数情報のポップアップ
 
なお,この機能を使用するためには,次の設定が必要となります。
-  | オプション ダイアログの[全般 - テキスト・エディタ]カテゴリ内の[スマート・エディット]チェック・ボックスを選択してください(デフォルト)。  | 
 
-  | スマート・エディット機能は,ビルド・ツールが出力するクロス・リファレンス情報を使用して入力候補表示を行います。したがって,使用するビルド・ツールのプロパティ パネルにおいて,[クロス・リファレンス情報を出力する]プロパティを[はい(-Xcref)]【CC-RH】【CC-RX】/[はい(-cref)]【CC-RL】に指定注したのち,ビルドの実行を完了させてください。 
なお,ビルドの際にエラーが発生した場合,エラー発生前のクロス・リファレンス情報が存在する場合はそれを使用します。  | 
 
注  | この設定が無効な場合,クロスリファレンス情報がクリアされるため,スマート・エディット機能は使用不可となります。  | 
 
関数/変数の候補は,次のいずれかの場合に表示されます。
-  | “.”,または“->”を入力した時点で左辺に対して該当するメンバがある場合  | 
 
-  | “::”を入力した時点で左辺に対して該当するメンバがある場合(C++ソース・ファイルを対象とする場合のみ)【CC-RX】  | 
 
-  | キーボードより,[Ctrl]+[Space]キーを押下した場合(すべての候補を表示) 
ただし,候補が1つのみの場合は候補表示を行わず,該当文字列がこの時点で挿入されます。  | 
 
 
関数の引数候補は,次のいずれかの場合に表示されます。
-  | 関数名において,“(”を入力した時点で左辺に対して該当する関数の引数がある場合  | 
 
-  | 関数の引数位置にキャレットがある状態で,キーボードより,[Ctrl]+[Shift]+[Space]キーを入力した場合  | 
 
候補表示のリストより文字列を[↑]/[↓]キー,またはマウスにより選択したのち,[Enter],または[TAB]キーを押下します。
候補表示は,次のいずれかの操作により消去されます。
候補リストで何も選択していない場合																	:		何もしません。
候補リストで選択している場合																	:		選択している候補の文字列を挿入します。
関数/変数の候補をアルファベット順に表示します。
キャレット位置の文字列と一致する文字列がある場合は,その文字列が強調表示されます(大文字/小文字不問)。
なお,各候補の先頭には,次のアイコンを表示します。
| 
 | 
 | 
| 
 
 
  
 | 
 
候補がtypedefであることを示します。 
 | 
| 
 
 
  
 | 
 
候補が関数であることを示します。 
 | 
| 
 
 
  
 | 
 
候補が変数であることを示します。 
 | 
| 
 
 
  
 | 
 
候補がクラスであることを示します。【CC-RX】 
 | 
| 
 
 
  
 | 
 
候補が構造体であることを示します。 
 | 
| 
 
 
  
 | 
 
候補が共用体であることを示します。 
 | 
| 
 
 
  
 | 
 
候補が名前空間であることを示します。【CC-RX】 
 | 
| 
 
 
  
 | 
 
候補がProtectedメンバであることを示します。【CC-RX】 
 | 
| 
 
 
  
 | 
 
候補がPrivateメンバであることを示します。【CC-RX】 
 | 
 
関数/変数の候補の表示/非表示を切り替えます。
| 
 | 
 | 
| 
 
 
  
 | 
 
選択することにより,関数の候補を表示します。 
 | 
| 
 
 
  
 | 
 
選択することにより,変数の候補を表示します。 
 | 
 
表示するメンバを切り替えます。
| 
 | 
 | 
| 
 
All members 
 | 
 
すべての候補を表示します。 
 | 
| 
 
Public members 
 | 
 
Public属性の候補のみ表示します。 
 | 
 
現在選択されている関数/変数の詳細情報を表示します。
| 
 | 
 | 
| 
 
(1) 
 | 
 
種別 
 | 
 
次の種別を表示します。 
(function):関数であることを示します。 
(variable):変数であることを示します。 
 | 
| 
 
(2) 
 | 
 
型 
 | 
 
関数/変数の型を表示します。 
 | 
| 
 
(3) 
 | 
 
名称 
 | 
 
関数/変数の名称を表示します。 
 | 
| 
 
(4) 
 | 
 
属性と型 
 | 
 
関数/変数の型を表示します。 
【CC-RX】 
属性が定義されている場合,アクセス指定子(public/protected/private)を先頭に表示します。 
 | 
| 
 
(5) 
 | 
 
名称と引数 
 | 
 
関数/変数の名称を表示します。関数の場合は引数も表示します。 
【CC-RX】 
オーバーロード関数の場合,オーバーロードされている個数を“()”内に示します。 
 | 
 
| 
 | 
 | 
| 
 
(1) 
 | 
 
型 
 | 
 
関数の型を表示します。 
 | 
| 
 
(2) 
 | 
 
名称と引数 
 | 
 
関数の名称と引数表示します。現在のキャレット位置の引数が強調表示されます。 
 | 
| 
 
(3) 
 | 
 
引数候補 
 | 
 
関数の名称と引数表示します。 
 | 
| 
 
(4) 
 | 
 
属性 
 | 
 
引数候補の属性(public/protected/private)を表示します。【CC-RX】 
 | 
| 
 
(5) 
 | 
 
引数候補の数 
 | 
 
引数候補が複数存在する場合,引数候補の数を表示します。 
▼/▲マークをクリックすると候補表示が切り替わります。 
 | 
 
-  | 関数中に構造体宣言/共用体宣言/クラス宣言【CC-RX】を行った場合,宣言以降関数内で候補表示は行いません。  | 
 
-  | 変数のサイズに影響するコンパイル・オプションを設定した場合,表示される変数の型が実際の宣言と異なる場合があります。  | 
 
-  | const,およびmutable属性は表示しません。  | 
 
-  | Namespace,およびサブクラス(クラス中で宣言したクラス)はサポートしていません。  | 
 
-  | “(*class)”,または“(*this)”を入力しても関数/変数の候補は表示しません。  | 
 
-  | 配列宣言したクラスでは関数/変数の候補は表示しません。  | 
 
-  | 左辺にクラスを指定し,メソッド名を途中まで入力した状態で[Ctrl]+[Space]キーを入力した場合,クラス内の関数/変数の候補は表示せず,グローバルな関数/変数の候補を表示します。  | 
 
ソース・テキスト上の関数名/変数名にマウス・カーソルを重ねると,その関数/変数の情報をポップアップ表示します。
ただし,次の注意が必要です。
-  | デバッグ・ツールと接続中にこの機能は使用できません。  | 
 
-  | ヘッダ・ファイル中で宣言されている構造体/共用体,およびメンバ関数【CC-RX】は表示しません。  | 
 
-  | const,static,volatile,およびvirtual【CC-RX】属性は表示しません。  | 
 
-  | クラス型【CC-RX】/構造体型/共用体型/列挙型の変数の場合,メンバの一覧を次のように表示します。  | 
 
-  | クラス型【CC-RX】/構造体型/共用体型の場合,メンバの型とメンバ名を表示 
なお,クラス型【CC-RX】の場合でメンバが関数の場合は,返却値の型と関数名を表示し,関数名の最後に“(”“)”を付加  | 
 
-  | メンバ表示については,C/C++ソース・ファイルに定義されている順番で1行に1つを表示(最大20個まで)  | 
 
-  | C++ソース・ファイルの場合【CC-RX】 
friend属性はサポートしていません。  | 
 
 
なお,ポップアップ表示するアイコンの意味は次のとおりです。
| 
 | 
 | 
| 
 
 
  
 | 
 
対象がtypedefであることを示します。 
 | 
| 
 
 
  
 | 
 
対象が関数であることを示します。 
 | 
| 
 
 
  
 | 
 
対象が変数であることを示します。 
 | 
| 
 
 
  
 | 
 
対象がクラスであることを示します。【CC-RX】 
 | 
| 
 
 
  
 | 
 
対象が構造体であることを示します。 
 | 
| 
 
 
  
 | 
 
対象が共用体であることを示します。 
 | 
| 
 
 
  
 | 
 
対象が名前空間であることを示します。【CC-RX】 
 | 
| 
 
 
  
 | 
 
対象が列挙型であることを示します。 
 | 
 
図 2.12  | スマート・エディット機能によるポップアップ表示  |