Поделиться через


Возможности IntelliSense для Visual C++

IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. Технология IntelliSense для C++ доступна для автономных файлов, а также для файлов, являющихся частью проекта C++. В кроссплатформенных проектах некоторые возможности IntelliSense доступны в файлах .cpp и .c в проекте с общим кодом даже в том случае, если вы находитесь в контексте Android или iOS.

В этой статье представлены общие сведения о функциях IntelliSense в C++. Сведения о том, как настроить проект для IntelliSense, а также устранять проблемы, см. в статье Настройка проекта C++ для IntelliSense.

Возможности IntelliSense в C++

IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор>C/C++>Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.

Tool Options dialog box

Для доступа к IntelliSense можно использовать пункты меню и сочетания клавиш, показанные на следующем изображении.

IntelliSense menu

Завершение операторов и список элементов

Когда вы набираете на клавиатуре ключевое слово, тип, функцию, имя переменной или другие программные элементы, распознаваемые компилятором, редактор подставляет полное слово.

Visual C++ Complete Word window

При первом вызове списка элементов отображаются только те элементы, которые доступны для текущего контекста. Если нажать сочетание клавиш CTRL+J, вы увидите полный список элементов, независимо от их доступности. Если данный список вызвать третий раз, будет показан еще более широкой список программных элементов. Список элементов можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие>Автоматически отображать список членов.

Visual C++ Member List

Справка по параметрам

При наборе на клавиатуре открывающей фигурной скобки для вызова функции или угловой скобки в объявлении переменной шаблона класса редактор отображает небольшое окно с типами параметров для каждого события перегрузки функции или конструктора. Параметр current (на основе расположения курсора) имеет полужирный шрифт. Сведения о параметрах можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие>Сведения о параметрах.

Visual C++ Parameter Help

Краткие сведения

При наведении курсора мыши на переменную появляется небольшое окно, где отображаются сведения о типе и заголовок, в котором определяется тип. Чтобы увидеть сигнатуру функции, наведите указатель мыши на вызов функции. Краткие сведения можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Расширенные>Auto Quick Info (Автоматически предоставляемые краткие сведения).

Visual C++ QuickInfo

Выделение ошибок

Волнистые линии под программным элементом (переменной, ключевым словом, фигурной скобкой, именем типа и т. д.) указывают на фактическую или возможную ошибку в коде. Зеленая волнистая линия появляется при написании опережающего объявления и напоминает о том, что необходимо написать реализацию. Фиолетовая волнистая линия появляется в общем проекте при наличии ошибки в коде, который не является активным, например, когда вы работаете в контексте Windows, но вводите что-то, что будет ошибкой в контексте Android. Красная волнистая линия указывает на ошибку компилятора или предупреждение в активном коде, с которыми необходимо разобраться.

Visual C++ error squiggles

Выделение кода цветом и шрифты

Используемые по умолчанию цвета и шрифты можно изменить в диалоговом окне Параметры, выбрав Среда>Шрифты и цвета. Здесь можно изменять шрифты не только для редактора, но и для различных окон пользовательского интерфейса. Параметры, относящиеся к C++, начинаются с «C++». Другие параметры относятся ко всем языкам.

Кроссплатформенная технология IntelliSense

В проекте с общим кодом некоторые возможности IntelliSense, например волнистые линии, доступны даже в том случае, если вы работаете в контексте Android. При написании кода, который приводит к ошибке в неактивном проекте, IntelliSense будет по-прежнему отображать волнистые линии, но они будут иметь другой цвет, чем волнистые линии для ошибок в текущем контексте.

Рассмотрим приложение OpenGLES, настроенное для сборки для Android и iOS. На иллюстрации показан редактируемый общий код. На этом изображении активным проектом является iOS.StaticLibrary:

iOS is selected as the active project.

Обратите внимание на следующее.

  • Ветвь #ifdef в строке 6 неактивна, что означает неактивный регион, так как __ANDROID__ не определен для проекта iOS.

  • Переменная приветствия в строке 11 инициализируется с идентификатором HELLO, теперь подчеркнутым красной волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в активном на данный момент проекте iOS.

  • Идентификатор BYE в строке 12 подчеркнут фиолетовой волнистой линией. Этот идентификатор не определен в неактивном на данный момент проекте Android.NativeActivity. Несмотря на то, что эта строка компилируется, когда iOS является активным проектом, она не будет компилироваться, когда Android является активным проектом. Так как это общий код, его следует исправить, даже если он компилируется в активной конфигурации.

Если вы измените активный проект на Android, волнистые линии изменятся:

  • Ветвь #else в строке 8 неактивна, что означает неактивный регион, так как __ANDROID__ определяется для проекта Android.

  • Переменная приветствия в строке 11 инициализируется с идентификатором HELLO, подчеркнутым фиолетовой волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в неактивном на данный момент проекте iOS.

  • Идентификатор BYE в строке 12 подчеркнут красной волнистой линией. Этот идентификатор не определен в активном проекте.

IntelliSense для автономных файлов

При открытии одного файла за пределами любого проекта функции IntelliSense по-прежнему остаются доступными. Отдельные возможности IntelliSense можно включить и (или) отключить в диалоговом окне Параметры, выбрав Текстовый редактор>C/C++>Общие. Чтобы настроить IntelliSense для отдельных файлов, которые не входят в проект, найдите раздел IntelliSense и обозреватель для файлов, не входящих в проект.

Visual C++ single file intellisense

По умолчанию в IntelliSense с одним файлом используются только стандартные каталоги включения для поиска файлов заголовка. Чтобы добавить дополнительные каталоги, откройте контекстное меню в узле Решение и добавьте каталог в список Исходный код отладки, как показано на следующей иллюстрации:

Adding a path to a header file.

Включение и отключение функций

У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор>C/C++>Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.

Tool Options dialog box