IntelliSense-Features für Visual C++

IntelliSense ist ein Name für eine Gruppe von Funktionen, die die Codierung erleichtern. IntelliSense für C++ ist für eigenständige Dateien sowie für Dateien innerhalb eines C++-Projekts verfügbar. In plattformübergreifenden Projekten stehen einige IntelliSense-Features in CPP- und C-Dateien in dem Projekt mit freigegebenem Code zur Verfügung, auch wenn Sie sich in einem Android- oder iOS-Kontext befinden.

Dieser Artikel enthält eine Übersicht über die IntelliSense-Funktionen von C++. Informationen zur Konfiguration Ihres Projekts für IntelliSense und zur Problembehandlung finden Sie unter Konfigurieren eines C++-Projekts für IntelliSense.

IntelliSense-Funktionen in C++

IntelliSense ist ein Name für eine Gruppe von Funktionen, die die Codierung erleichtern. Da verschiedene Personen unterschiedliche Vorstellungen dazu haben, was praktisch ist, können im Prinzip alle IntelliSense-Funktionen im Dialogfeld Optionen unter Text-Editor>C/C++>Erweitert aktiviert oder deaktiviert werden . Das Dialogfeld Optionen steht im Menü Tools auf der Menüleiste zur Verfügung.

Tool Options dialog box

Sie können die in der folgenden Abbildung aufgeführten Menüelemente und Tastenkombinationen für den Zugriff auf IntelliSense verwenden.

IntelliSense menu

Anweisungsvervollständigung und Memberliste

Wenn Sie beginnen, ein Schlüsselwort, einen Typ, eine Funktion, einen Variablennamen oder ein anderes Programmelement einzugeben, das der Compiler erkennt, bietet der Editor die Vervollständigung des Worts an.

Visual C++ Complete Word window

Wenn Sie die Memberliste zum ersten Mal aufrufen, werden in ihr nur Member angezeigt, auf die über den aktuellen Kontext zugegriffen werden kann. Wenn Sie danach STRG+J drücken, werden alle Member unabhängig vom Zugriff angezeigt. Wenn Sie sie ein drittes Mal aufrufen, wird eine noch größere Liste der Programmelemente angezeigt. Sie können die Memberliste im Dialogfeld Optionen unter Text-Editor>C/C++>Allgemein>Member automatisch auflisten deaktivieren.

Visual C++ Member List

Parameterhilfe

Wenn Sie eine öffnende geschweifte Klammer eines Funktionsaufrufs oder spitze Klammer in einer Variablendeklaration einer Klassenvorlage eingeben, zeigt der Editor ein kleines Fenster mit den Parametertypen für jede Überladung der Funktion oder des Konstruktors an. Der current-Parameter, der auf der Cursorposition basiert, wird in Fettschrift angezeigt. Sie können Parameterinformationen im Dialogfeld Optionen unterhalb von Text-Editor>C/C++>Allgemein>Parameterinformationen deaktivieren.

Visual C++ Parameter Help

QuickInfo

Wenn Sie mit dem Mauszeiger auf eine Variable zeigen, wird ein kleines Fenster angezeigt, in dem die Informationen und der Header, in dem der Typ definiert wird, angezeigt werden. Zeigen Sie auf einen Funktionsaufruf, um die Signatur der Funktion anzuzeigen. Sie können die QuickInfo im Dialogfeld Optionen unterhalb von Text-Editor>C/C++>Allgemein>Automatische QuickInfo deaktivieren.

Visual C++ QuickInfo

Fehlerwellenlinien

Wellenlinien unter einem Programmelement (Variable, Schlüsselwort, geschweifte Klammer, Typname usw.) weisen auf einen Fehler oder einen möglichen Fehler im Code hin. Beim Schreiben einer Vorwärtsdeklaration wird eine grüne Wellenlinie eingeblendet, um Sie daran zu erinnern, dass Sie immer noch die Implementierung schreiben müssen. Eine violette Wellenlinie wird in einem freigegebenen Projekt eingeblendet, wenn ein Fehler im Code vorliegt, der gerade nicht aktiv ist, z. B. wenn Sie im Windows-Kontext arbeiten, aber etwas eingeben, das in einem Android-Kontext einen Fehler auslösen würde. Eine rote Wellenlinie weist auf einen Compilerfehler oder eine Warnung im aktiven Code hin, den bzw. die Sie behandeln müssen.

Visual C++ error squiggles

Farbliche Kennzeichnung von Code und Schriftarten

Die Standardfarben und -schriftarten können im Dialogfeld Optionen unter Umgebung>Schriftarten und Farben geändert werden. Hier können Sie die Schriftarten für viele UI-Fenster ändern, nicht nur für den Editor. Die Einstellungen, die spezifisch für C++ sind, beginnen mit „C++“; die anderen Einstellungen gelten für alle Sprachen.

Plattformübergreifendes IntelliSense

In einem Projekt mit freigegebenem Code stehen einige IntelliSense-Funktionen, wie z. B. Wellenlinien, sogar bei der Arbeit in einem Android-Kontext zur Verfügung. Wenn Sie Code schreiben, der zu einem Fehler in einem inaktiven Projekt führen würde, zeigt IntelliSense weiterhin Wellenlinien an, aber in einer anderen Farbe als Wellenlinien für Fehler im aktuellen Kontext.

Dies lässt sich anhand einer OpenGL ES-Anwendung demonstrieren, die für Android- und iOS-Buildvorgänge konfiguriert ist. Die Abbildung veranschaulicht den bearbeiteten freigegebenen Code. Das aktive Projekt ist iOS.StaticLibrary:

iOS is selected as the active project.

Beachten Sie Folgendes:

  • Die #ifdef-Verzweigung in Zeile 6 ist ausgegraut und stellt den inaktiven Bereich dar, da __ANDROID__ nicht für das iOS-Projekt definiert ist.

  • Die Variable für die Grußformel in Zeile 11 wird mit dem HELLO-Bezeichner initialisiert, unter dem sich nun eine rote Wellenlinie befindet. Der Grund hierfür ist, dass kein HELLO-Bezeichner in dem aktuell aktiven iOS-Projekt definiert ist.

  • In Zeile 12 befindet sich eine lila Wellenlinie unter dem Bezeichner BYE, da dieser im aktuell inaktiven Android.NativeActivity-Projekt nicht definiert ist. Diese Zeile wird zwar bei aktiven iOS-, nicht jedoch Android-Projekten kompiliert. Da es sich um freigegebenen Code handelt, sollten Sie diesen auch dann ändern, wenn er in der aktuell aktiven Konfiguration kompiliert wird.

Wenn Sie das Android-Projekt als aktives Projekt festlegen, wird die Wellenlinie angepasst:

  • Die #else-Verzweigung in Zeile 8 ist ausgegraut und stellt einen inaktiven Bereich dar, da __ANDROID__ für das Android-Projekt definiert ist.

  • Die Variable für die Grußformel in Zeile 11 wird mit dem HELLO-Bezeichner initialisiert, der eine violette Wellenlinie hat. Der Grund hierfür ist, dass kein HELLO-Bezeichner in dem aktuell inaktiven iOS-Projekt definiert ist.

  • In Zeile 12 befindet sich eine rote Wellenlinie unter dem Bezeichner BYE, da dieser im aktiven Projekt nicht definiert ist.

IntelliSense für eigenständige Dateien

Wenn Sie eine einzelne Datei außerhalb von Projekten öffnen, können Sie weiterhin IntelliSense verwenden. Sie können bestimmte IntelliSense-Features im Dialogfeld Optionen unter Text-Editor>C/C++>Erweitert aktivieren oder deaktivieren. Beachten Sie zum Konfigurieren von IntelliSense für einzelne Dateien, die nicht Teil eines Projekts sind, den Abschnitt IntelliSense und Suchen nach Nicht-Projektdateien.

Visual C++ single file intellisense

Standardmäßig verwendet eine einzelne IntelliSense-Datei die standardmäßigen Includeverzeichnisse für die Suche nach Headerdateien. Öffnen Sie zum Hinzufügen weiterer Verzeichnisse das Kontextmenü für den Knoten Projektmappe, und fügen Sie Ihr Verzeichnis, wie in der folgenden Abbildung gezeigt, zur Liste Quellcode debuggen hinzu:

Adding a path to a header file.

Aktivieren oder Deaktivieren von Features

Da verschiedene Personen unterschiedliche Vorstellungen dazu haben, was praktisch ist, können im Prinzip alle IntelliSense-Funktionen im Dialogfeld Optionen unter Text-Editor>C/C++>Erweitert aktiviert oder deaktiviert werden . Das Dialogfeld Optionen steht im Menü Tools auf der Menüleiste zur Verfügung.

Tool Options dialog box