スマート・エディット機能とは,C/C++ソース・ファイルをコーディング中に,関数情報や変数情報,および関数の引数情報などをリスト表示することにより,ユーザの入力を補完する機能です。
スマート・エディット機能では,次の情報の入力補完を行います。
- | クラスメンバ関数(C++ソース・ファイルを対象とする場合のみ)【CC-RX】 |
- | クラスメンバ変数(C++ソース・ファイルを対象とする場合のみ)【CC-RX】 |
注意 1. | この機能は,CS+が提供するビルド・ツール(CC-RH/CC-RX/CC-RL)を使用している場合のみサポートされる機能です(外部ビルド・ツールを使用している場合,この機能は無効となります)。 |
注意 2. | 混合表示モードを選択している場合,この機能は無効となります。 |
注意 3. | 構造体がネストしている場合,3段目以降についてはこの機能は無効となります。 |
スマート・エディット機能は,次の表示を行います。
(1) 関数/変数/関数の引数候補
(2) 関数/変数情報のポップアップ
なお,この機能を使用するためには,次の設定が必要となります。
- | オプション ダイアログの[テキスト・エディタ - 一般・デバッグ]カテゴリ内の[スマート・エディット]チェック・ボックスを選択してください(デフォルト)。 |
- | スマート・エディット機能は,ビルド・ツールが出力するクロス・リファレンス情報を使用して入力候補表示を行います。したがって,使用するビルド・ツールのプロパティ パネルにおいて,[クロス・リファレンス情報を出力する]プロパティを[はい(-Xcref)]【CC-RH】【CC-RX】/[はい(-cref)]【CC-RL】に指定注したのち,ビルドの実行を完了させてください。
なお,ビルドの際にエラーが発生した場合,エラー発生前のクロス・リファレンス情報が存在する場合はそれを使用します。 |
注 | この設定が無効な場合,クロスリファレンス情報がクリアされるため,スマート・エディット機能は使用不可となります。 |
関数/変数の候補は,次のいずれかの場合に表示されます。
- | “.”,または“->”を入力した時点で左辺に対して該当するメンバがある場合 |
- | “::”を入力した時点で左辺に対して該当するメンバがある場合(C++ソース・ファイルを対象とする場合のみ)【CC-RX】 |
- | キーボードより,[Ctrl]+[Space]キーを押下した場合(すべての候補を表示)
ただし,候補が1つのみの場合は候補表示を行わず,該当文字列がこの時点で挿入されます。 |
注意 | メンバ名を途中まで入力して[Ctrl]+[Space]を押下した場合, 候補表示は正しく行われません。 |
関数の引数候補は,次のいずれかの場合に表示されます。
- | 関数名において,“(”を入力した時点で左辺に対して該当する関数の引数がある場合 |
- | 関数の引数位置にキャレットがある状態で,キーボードより,[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】は表示しません。 |
- | 関数の引数に関数呼び出しを含む場合,誤った情報がポップアップ表示されます。 |
例 | myClass.func(myClass.funcStr( |
- | 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 | スマート・エディット機能によるポップアップ表示 |
注意 | “#ifdef~#endif”の直後のコードでは,関数/変数情報はポップアップ表示されません。また,メンバの候補も表示されません。
同様に,“#ifdef~#endif”内の最初の変数については,“#endif”以降のコードで変数情報はポップアップ表示されません。また,メンバの候補も表示されません。 |