IntelliSense は、コーディングをより便利にする一連の機能に付けられた名前です。 C++ 用の IntelliSense は、スタンドアロン ファイルと、C++ プロジェクトの一部であるファイルで使用できます。 クロスプラットフォーム プロジェクトでは、Android または iOS コンテキストを使用している場合でも、共有コード プロジェクトの .cpp ファイルと .c ファイルで一部の IntelliSense 機能を使用できます。
この記事では、C++ IntelliSense 機能の概要について説明します。 IntelliSense 用にプロジェクトを構成する方法と問題のトラブルシューティング方法については、「 IntelliSense 用に C++ プロジェクトを構成する」を参照してください。
C++ の IntelliSense 機能
IntelliSense は、コーディングをより便利にする一連の機能に付けられた名前です。 ユーザーごとに便利な機能についてさまざまなアイデアがあるため、[ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>Advanced] で、ほぼすべての IntelliSense 機能を有効または無効にすることができます。 [オプション] ダイアログ ボックスは、メニュー バーの [ツール] メニューから使用できます。
次の図に示すメニュー項目とキーボード ショートカットを使用して、IntelliSense にアクセスできます。
ステートメント補完とメンバー一覧
コンパイラが認識するキーワード、型、関数、変数名、またはその他のプログラム要素を入力し始めると、エディターが自動的に補完を提案します。
メンバー リストを初めて呼び出すと、現在のコンテキストでアクセスできるメンバーのみが表示されます。 その後 Ctrl+キーを押すと、アクセシビリティに関係なくすべてのメンバーが表示されます。 3 回目に呼び出すと、さらに広いプログラム要素の一覧が表示されます。 メンバー リストは、[ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>General>Auto リスト メンバーで無効にすることができます。
パラメーターのヘルプ
関数呼び出しの開き中括弧またはクラス テンプレート変数宣言の山括弧を入力すると、エディターには、関数またはコンストラクターの各オーバーロードにおけるパラメーター型を示す小さなウィンドウがポップアップ表示されます。 カーソル位置に基づく "current" パラメーターは太字です。 パラメーター情報は、[ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>General>Parameter 情報で無効にすることができます。
クイック情報
変数の上にマウス カーソルを置くと、型情報と型が定義されているヘッダーを示す小さなウィンドウがインラインで表示されます。 関数呼び出しにカーソルを合わせると、関数のシグネチャが表示されます。 [ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>Advanced>Auto Quick Info でクイック ヒントをオフにすることができます。
エラー波線
プログラム要素 (変数、キーワード、中かっこ、型名など) の下の波線は、コード内のエラーや潜在的なエラーに注意を向けます。 前方宣言を記述すると緑色の波線が表示され、実装を記述する必要がまだあることを知らせます。 Windows コンテキストで作業しているが Android コンテキストでエラーになる内容を入力する場合など、現在アクティブではないコードにエラーがある場合、共有プロジェクトに紫色の波線が表示されます。 赤い波線は、処理する必要があるアクティブなコードのコンパイラ エラーまたは警告を示します。
コードの色付けとフォント
既定の色とフォントは、[オプション] ダイアログ ボックスの [環境]、[フォント>色] で変更できます。 エディターだけでなく、多くの UI ウィンドウのフォントをここで変更できます。 C++ に固有の設定は 、"C++" で始まります。その他の設定は、すべての言語に対して行われます。
クロスプラットフォーム IntelliSense
共有コード プロジェクトでは、Android コンテキストで作業している場合でも、波線などの一部の IntelliSense 機能を使用できます。 非アクティブなプロジェクトでエラーが発生するコードを記述した場合、IntelliSense は引き続き波線を表示しますが、現在のコンテキストでのエラーの波線とは異なる色になっています。
Android および iOS 用にビルドするように構成された OpenGLES アプリケーションについて考えてみましょう。 図は、編集中の共有コードを示しています。 この画像では、アクティブなプロジェクトは iOS.StaticLibrary です。
次のことに注意してください。
#ifdefは iOS プロジェクトに対して定義されていないため、6 行目の__ANDROID__ブランチは淡色表示され、非アクティブな領域が示されます。11 行目のグリーティング変数は識別子
HELLOで初期化され、赤い波線が表示されます。 これは、現在アクティブな iOS プロジェクトで識別子HELLOが定義されていないためです。この識別子は (現在) 非アクティブな
BYEプロジェクトで定義されていないため、12 行目の識別子に紫色の波線があります。 iOS がアクティブなプロジェクトの場合、この行はコンパイルされますが、Android がアクティブなプロジェクトの場合はコンパイルされません。 これは共有コードであるため、現在アクティブな構成でコンパイルされる場合でも、コードを修正する必要があります。
アクティブなプロジェクトを Android に変更すると、波線が変わります。
#elseは Android プロジェクト用に定義されているため、8 行目の__ANDROID__ブランチは淡色表示され、非アクティブなリージョンが示されます。11 行目のグリーティング変数は、紫色の波線を持つ識別子
HELLOで初期化されます。 これは、現在非アクティブな iOS プロジェクトで識別子HELLOが定義されていないためです。12 行目には、アクティブなプロジェクトでこの識別子が定義されていないため、識別子
BYEに赤い波線があります。
スタンドアロン ファイルの IntelliSense
プロジェクトの外部で 1 つのファイルを開くと、IntelliSense が表示されます。 [ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>Advanced] で、特定の IntelliSense 機能を有効または無効にすることができます。 プロジェクトに含まれていない 1 つのファイルに対して IntelliSense を構成するには、[ IntelliSense] セクションと [プロジェクト以外のファイルの参照 ] セクションを探します。
既定では、単一ファイルの IntelliSense では、ヘッダー ファイルを検索するために標準のインクルード ディレクトリのみが使用されます。 次の図に示すように、追加のディレクトリを追加するには、[ ソリューション ] ノードのショートカット メニューを開き、ディレクトリを [デバッグ ソース コード] の一覧に追加します。
機能を有効または無効にする
ユーザーごとに便利な機能についてさまざまなアイデアがあるため、[ オプション] ダイアログ ボックスの [ テキスト エディター>C/C++>Advanced] で、ほぼすべての IntelliSense 機能を有効または無効にすることができます。 [オプション] ダイアログ ボックスは、メニュー バーの [ツール] メニューから使用できます。