Intellisense visual studio что это
IntelliSense is a general term for various code editing features including: code completion, parameter info, quick info, and member lists. IntelliSense features are sometimes called by other names such as "code completion", "content assist", and "code hinting."
IntelliSense for your programming language
Visual Studio Code IntelliSense is provided for JavaScript, TypeScript, JSON, HTML, CSS, SCSS, and Less out of the box. VS Code supports word based completions for any programming language but can also be configured to have richer IntelliSense by installing a language extension.
Below are the most popular language extensions in the Marketplace. Select an extension tile below to read the description and reviews to decide which extension is best for you.
IntelliSense features
VS Code IntelliSense features are powered by a language service. A language service provides intelligent code completions based on language semantics and an analysis of your source code. If a language service knows possible completions, the IntelliSense suggestions will pop up as you type. If you continue typing characters, the list of members (variables, methods, etc.) is filtered to only include members containing your typed characters. Pressing Tab or Enter will insert the selected member.
You can trigger IntelliSense in any editor window by typing ⌃Space (Windows, Linux Ctrl+Space ) or by typing a trigger character (such as the dot character ( . ) in JavaScript).
Tip: The suggestions widget supports CamelCase filtering, meaning you can type the letters which are upper cased in a method name to limit the suggestions. For example, "cra" will quickly bring up "createApplication".
If you prefer, you can turn off IntelliSense while you type. See Customizing IntelliSense below to learn how to disable or customize VS Code's IntelliSense features.
As provided by the language service, you can see quick info for each method by either pressing ⌃Space (Windows, Linux Ctrl+Space ) or clicking the info icon. The accompanying documentation for the method will now expand to the side. The expanded documentation will stay so and will update as you navigate the list. You can close this by pressing ⌃Space (Windows, Linux Ctrl+Space ) again or by clicking on the close icon.
After choosing a method you are provided with parameter info.
When applicable, a language service will surface the underlying types in the quick info and method signatures. In the image above, you can see several any types. Because JavaScript is dynamic and doesn't need or enforce types, any suggests that the variable can be of any type.
Types of completions
The JavaScript code below illustrates IntelliSense completions. IntelliSense gives both inferred proposals and the global identifiers of the project. The inferred symbols are presented first, followed by the global identifiers (shown by the Word icon).
VS Code IntelliSense offers different types of completions, including language server suggestions, snippets, and simple word based textual completions.
Methods and Functions | method , function , constructor |
Variables | variable |
Fields | field |
Type parameters | typeParameter |
Constants | constant |
Classes | class |
Interfaces | interface |
Structures | struct |
Events | event |
Operators | operator |
Modules | module |
Properties and Attributes | property |
Values and Enumerations | value , enum |
References | reference |
Keywords | keyword |
Files | file |
Folders | folder |
Colors | color |
Unit | unit |
Snippet prefixes | snippet |
Words | text |
Customizing IntelliSense
You can customize your IntelliSense experience in settings and key bindings.
Settings
The settings shown below are the default settings. You can change these settings in your settings.json file as described in User and Workspace Settings.
Tab Completion
The editor supports "tab completion" which inserts the best matching completion when pressing Tab . This works regardless of the suggest widget showing or not. Also, pressing Tab after inserting a suggestions will insert the next best suggestion.
By default, tab completion is disabled. Use the editor.tabCompletion setting to enable it. These values exist:
- off - (default) Tab completion is disabled.
- on - Tab completion is enabled for all suggestions and repeated invocations insert the next best suggestion.
- onlySnippets - Tab completion only inserts static snippets which prefix match the current line prefix.
Locality Bonus
Sorting of suggestions depends on extension information and on how well they match the current word you are typing. In addition, you can ask the editor to boost suggestions that appear closer to the cursor position, using the editor.suggest.localityBonus setting.
In above images you can see that count , context , and colocated are sorted based on the scopes in which they appear (loop, function, file).
Suggestion selection
By default, VS Code pre-selects the previously used suggestion in the suggestion list. This is very useful as you can quickly insert the same completion multiple times. If you'd like different behavior, for example, always select the top item in the suggestion list, you can use the editor.suggestSelection setting.
- first - (default) Always select the top list item.
- recentlyUsed - The previously used item is selected unless a prefix (type to select) selects a different item.
- recentlyUsedByPrefix - Select items based on previous prefixes that have completed those suggestions.
"Type to select" means that the current prefix (roughly the text left of the cursor) is used to filter and sort suggestions. When this happens and when its result differs from the result of recentlyUsed it will be given precedence.
When using the last option, recentlyUsedByPrefix , VS Code remembers which item was selected for a specific prefix (partial text). For example, if you typed co and then selected console , the next time you typed co , the suggestion console would be pre-selected. This lets you quickly map various prefixes to different suggestions, for example co -> console and con -> const .
Snippets in suggestions
By default, VS Code shows snippets and completion proposals in one widget. You can control the behavior with the editor.snippetSuggestions setting. To remove snippets from the suggestions widget, set the value to "none" . If you'd like to see snippets, you can specify the order relative to suggestions; at the top ( "top" ), at the bottom ( "bottom" ), or inline ordered alphabetically ( "inline" ). The default is "inline" .
Key bindings
The key bindings shown below are the default key bindings. You can change these in your keybindings.json file as described in Key Bindings.
Note: There are many more key bindings relating to IntelliSense. Open the Default Keyboard Shortcuts (File > Preferences > Keyboard Shortcuts) and search for "suggest".
Troubleshooting
If you find IntelliSense has stopped working, the language service may not be running. Try restarting VS Code and this should solve the issue. If you are still missing IntelliSense features after installing a language extension, open an issue in the repository of the language extension.
Tip: For configuring and troubleshooting JavaScript IntelliSense, see the JavaScript documentation.
A particular language extension may not support all the VS Code IntelliSense features. Review the extension's README to find out what is supported. If you think there are issues with a language extension, you can usually find the issue repository for an extension through the VS Code Marketplace. Navigate to the extension's Details page and select the Support link.
Next steps
-
- Get the most out of your JavaScript development, including configuring IntelliSense. - See an example of IntelliSense in action in the Node.js walkthrough. - Learn how to set up debugging for your application. - Learn how to create extensions that add IntelliSense for new programming languages.
Common questions
Why am I not getting any suggestions?
This can be caused by a variety of reasons. First, try restarting VS Code. If the problem persists, consult the language extension's documentation. For JavaScript specific troubleshooting, please see the JavaScript language topic.
Why am I not seeing method and variable suggestions?
This issue is caused by missing type declaration (typings) files in JavaScript. You can check if a type declaration file package is available for a specific library by using the TypeSearch site. There is more information about this issue in the JavaScript language topic. For other languages, please consult the extension's documentation.
IntelliSense — это вспомогательное средство для написания кода, включающее несколько возможностей: "Список членов", "Сведения о параметрах", "Краткие сведения" и "Завершить слово". Эти возможности помогают получать дополнительные сведения об используемом коде, отслеживать параметры при вводе и добавлять вызовы свойств и методов путем нескольких нажатий клавиш.
Многие аспекты IntelliSense зависят от конкретного языка. Дополнительные сведения об IntelliSense для различных языков приведены в разделах, перечисленных в подразделе См. также.
Список членов
После ввода символа триггера (например, точки ( . ) в управляемом коде или :: в C++) появляется список допустимых членов типа (или пространства имен). Если продолжить вводить символы, список фильтруется таким образом, чтобы включать только члены, начинающиеся этими символами, или члены, у которых любое слово в имени начинается этими символами. IntelliSense также выполняет сопоставление "верблюжьего" стиля, поэтому вы можете просто ввести первую букву каждого слова с "верблюжьим" стилем в имени члена, чтобы просмотреть список совпадений.
После выбора элемента, его можно вставить в код, нажав клавишу TAB или введя пробел. При выделении элемента и вводе точки элемент отображается с конечной точкой, которая вызывает еще один список членов. При выделении элемента (но до того, как он будет вставлен) отображаются краткие сведения по элементу.
В списке членов значок слева указывает на тип члена, такой как пространство имен, класс, функция или переменная. Список значков см. в разделе Значки представления классов и обозревателя объектов. Список может быть достаточно длинным; перемещаться вверх и вниз по списку можно с помощью клавиш PAGE UP и PAGE DOWN.
Функцию Список членов можно вызывать вручную, нажав клавиши CTRL+J, выбрав пункт Edit > IntelliSense > Список членов или нажав кнопку Список членов на панели инструментов редактора. При вызове в пустой строке или за пределами распознаваемой области в списке отображаются символы глобального пространства имен.
Чтобы отключить список членов по умолчанию (чтобы он не отображался без специального вызова), перейдите в раздел меню Сервис > Параметры > Все языки и снимите флажок Автоматически отображать список членов. Если требуется отключить список членов только для конкретного языка, перейдите к параметрам Общие для этого языка.
Можно также включить режим подсказки, в котором в код будет вставляться только печатаемый текст. Например, если ввести идентификатор, отсутствующий в списке, и нажать клавишу TAB, в режиме завершения введенный идентификатор был бы заменен записью из списка. Для переключения между режимом завершения и режимом подсказки нажмите CTRL+ALT+ПРОБЕЛ или выберите Изменить > IntelliSense > Переключить режим завершения.
Сведения о параметрах
Выделение параметра полужирным шрифтом указывает на следующий параметр, необходимый при вводе функции. Для перегруженных функций можно использовать клавиши СТРЕЛКА ВВЕРХ и СТРЕЛКА ВНИЗ для просмотра сведений об альтернативных параметрах для перегрузок функций.
При аннотировании функций и параметров при помощи комментариев XML-документации комментарии будут отображаться в качестве сведений о параметрах. Дополнительные сведения см. в разделе Создание XML-примечаний к коду.
Сведения о параметрах можно вызвать вручную, выбрав Изменить > IntelliSense > Сведения о параметрах, нажав клавиши CTRL+SHIFT+ПРОБЕЛ или кнопку Сведения о параметрах на панели инструментов редактора.
Краткие сведения
Функция "Краткие сведения" отображает полное объявление любого идентификатора в коде.
При выборе члена в поле Список членов для него также отображаются краткие сведения.
Краткие сведения можно открыть вручную, выбрав пункт меню Изменить > IntelliSense > Краткие сведения или нажав клавиши CTRL+K, CTRL+I или кнопку Краткие сведения на панели инструментов редактора.
Если функция перегружена, IntelliSense может не отображать информацию для всех форм перегрузки.
Чтобы отключить краткие сведения для кода C++, можно перейти в меню Сервис > Параметры > Текстовый редактор > С/С++ > Дополнительно и задать для параметра Автоматические краткие сведения значение false .
Завершение слов
Функция "Завершить слово" завершает оставшуюся часть имени переменной, команды или функции после ввода достаточного количества символов для однозначного определения термина. Чтобы вызвать функцию "Завершить слово", можно выбрать пункт меню Изменить > IntelliSense > Завершить слово либо нажать клавиши CTRL+ПРОБЕЛ или кнопку Завершить слово на панели инструментов редактора.
Параметры IntelliSense
Параметры IntelliSense включены по умолчанию. Чтобы отключить их, выберите Сервис > Параметры > Текстовый редактор и снимите флажок Сведения о параметрах или Автоматически отображать список членов, если вам не нужна функция списка членов.
Значки IntelliSense
Значки в IntelliSense могут передавать дополнительные значения с помощью модификаторов значков. Это звезды, сердечки и замки, расположенные поверх значка объекта, которые означают защищенное, внутреннее или закрытое использование соответственно.
Устранение неполадок IntelliSense
В некоторых случаях параметры IntelliSense могут не работать должным образом.
Курсор находится под ошибкой кода. Если в коде над курсором имеется неполная функция или другая ошибка, функция IntelliSense может перестать работать, поскольку ей не удается проанализировать элементы кода. Для устранения этой проблемы можно отметить соответствующий код комментарием.
Курсор находится в комментарии к коду. Если курсор находится в комментарии в файле исходного кода, вы не сможете использовать IntelliSense.
Курсор находится в строковом литерале. Вы не сможете использовать IntelliSense, если курсор находится внутри кавычек, в которые заключен строковый литерал, как показано в следующем примере:
Автоматические параметры отключены. По умолчанию функция IntelliSense работает автоматически, но ее можно отключить. Вы можете вызывать функцию IntelliSense, даже если автоматическое завершение операторов отключено.
Списки завершения
члены типа или пространства имен;
имена переменных, команд и функций;
Ключевые слова языка
Фрагменты кода в списках завершения
Ключевые слова языка в списках завершения
Методы расширения в списках завершения
В списке завершения отображаются не все методы расширения для объектов String.
В методах расширения используется не такой значок, как в методах экземпляра. Справочник по значкам списка вы найдете в статье Значки представления классов и обозревателя объектов. Если метод экземпляра и метод расширения с одинаковыми именами находятся в одной области, в списке завершения отображается значок метода расширения.
Фильтрованные списки завершения
Атрибуты. При применении атрибута к типу список завершения фильтруется таким образом, что в нем остаются только типы, которые получены из пространств имен, содержащих эти типы, например Attribute.
Предложения CATCH.
Инициализаторы объектов. В списке завершения будут отображаться только те элементы, которые могут быть инициализированы.
Ключевое слово new. При вводе new и нажатии клавиши ПРОБЕЛ появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы для объявлений и операторов возврата в методах.
Ключевое слово enum. При нажатии клавиши ПРОБЕЛ после ввода знака равенства для назначения перечисления появляется список завершения. Элемент в списке выбирается автоматически в зависимости от контекста в коде. Например, в списке завершения автоматически выбираются элементы после ввода ключевого слова "return" и при объявлении.
Операторы AS и IS. Фильтрованный список завершения отображается автоматически при нажатии клавиши ПРОБЕЛ после ввода ключевого слова as или is .
События. При вводе ключевого слова event список завершения содержит только типы делегатов.
Справочная система по параметрам автоматически сортируется по первой перегрузке метода, соответствующей параметрам, по мере их ввода. Если существует несколько перегрузок метода, можно использовать кнопки со стрелками вверх и вниз для перехода к следующей возможной перегрузке в списке.
Недавно использовавшиеся члены
IntelliSense запоминает последние элементы, выбранные во всплывающем окне Список членов для автоматического завершения имени объекта. Когда вы откроете список членов в следующий раз, сверху будут отображаться элементы, которые недавно использовались. Журнал наиболее часто используемых членов списка очищается после завершения каждого сеанса Visual Studio.
override
Если ввести override, а затем нажать клавишу ПРОБЕЛ, IntelliSense покажет во всплывающем списке все допустимые элементы базового класса, которые можно переопределить. Если после приглашения override ввести тип возвращаемого значения метода, IntelliSense отобразит только методы, возвращающие этот тип. Если IntelliSense не сможет найти совпадения, будут показаны все члены базового класса.
IntelliSense с возможностями искусственного интеллекта
Расширение Visual Studio IntelliCode предоставляет списки завершения IntelliSense с использованием искусственного интеллекта. IntelliCode предсказывает, какой API будет наиболее подходящим, а не просто возвращает список членов в алфавитном порядке. Оно формирует список динамически на основе текущего контекста вашего кода.
Автоматическое генерирование кода
Добавить директиву using
Операция IntelliSense Добавить директиву using автоматически добавляет требуемую директиву using в файл кода. Это позволяет сосредоточить внимание на коде, который вы пишете, и не отвлекаться на другую часть кода.
Чтобы инициировать операцию Добавить директиву using, поместите курсор на ссылку на тип, которую не удается разрешить. Например, при создании консольного приложения и добавлении XmlReader в тело метода Main в соответствующей строке появляется подчеркивание красной волнистой линией, так как ссылку на тип не удается разрешить. После этого можно вызвать операцию Добавить директиву using, выбрав быстрое действие. Быстрые действия отображаются, только если курсор находится в несвязанном типе.
Щелкните значок лампочки с ошибкой и выберите пункт using System.Xml;, чтобы автоматически добавить директиву using.
Добавлять отсутствующие директивы using при вставке
Удаление и сортировка директив using
Параметр Удалить и сортировать директивы using позволяет сортировать и удалять объявления using и extern , не меняя поведение исходного кода. Со временем исходные файлы могут стать перегруженными, и их станет трудно читать по причине ненужных и неорганизованных директив using . Параметр Удалить и сортировать директивы using сжимает исходный код, удаляя неиспользуемые директивы using и улучшая читаемость путем их сортировки. В меню Правка выберите IntelliSense, а затем Упорядочить директивы Using.
Реализация интерфейса
Технология IntelliSense может облегчить реализацию интерфейса при работе в редакторе кода. Обычно для правильной реализации интерфейса нужно создать объявление метода для каждого члена интерфейса в классе. При использовании IntelliSense после ввода имени интерфейса в объявлении класса появляется значок быстрых действий в виде лампочки. Он позволяет выбрать вариант автоматической реализации интерфейса с помощью явного или неявного именования. При явном именовании объявления метода содержат имя интерфейса. В случае неявного именования объявления метода не указывают, к какому интерфейсу они принадлежат. Доступ к явно именованному методу интерфейса может осуществляться только через экземпляр интерфейса, а не через экземпляр класса. Дополнительные сведения см. в разделе Явная реализация интерфейса.
Реализация интерфейса создает минимально необходимый для работы интерфейса набор заглушек методов. Если базовый класс уже реализует часть интерфейса, заглушки не восстанавливаются.
Реализация абстрактного базового класса
IntelliSense предоставляет возможность автоматической реализации членов абстрактного базового класса при работе в редакторе кода. В обычном режиме для реализации членов абстрактного базового класса для каждого метода абстрактного базового класса в производном классе необходимо создать новое определение метода. При использовании IntelliSense после ввода имени абстрактного базового класса в объявлении класса появляется значок быстрых действий в виде лампочки. Он дает возможность автоматической реализации методов базового класса.
Заглушки метода, создаваемые функцией Реализовать абстрактный базовый класс, моделируются фрагментом кода, определенным в файле MethodStub.snippet. Фрагменты кода можно изменять. Подробнее см. в разделе Пошаговое руководство. Создание фрагмента кода.
Создание в результате использования
Возможность Создание в результате использования позволяет использовать классы и элементы до того, как они будут определены. Для любого класса, конструктора, метода, свойства, поля или перечисления, которое вы хотите использовать, но еще не определили, можно создать заглушку. Новые типы и члены можно создавать, не покидая текущего расположения в коде. Это сводит до минимума нарушения в рабочем процессе.
Щелкните неопределенный идентификатор. Под идентификатором появляется значок быстрых действий в виде лампочки с ошибкой. Щелкните лампочку с ошибкой.
Щелкните неопределенный идентификатор и нажмите клавиши CTRL+ . (CTRL+точка).
Щелкните неопределенный идентификатор правой кнопкой мыши и выберите пункт Быстрые действия и рефакторинг.
В число появившихся параметров могут входить следующие:
Сформировать свойство
Сформировать поле
Создание метода
Сформировать класс
Сформировать новый тип (для класса, структуры, интерфейса или перечисления)
Сформировать обработчики событий
В редакторе кода IntelliSense упрощает подключение методов (обработчиков событий) к полям событий.
Если ввести оператор += после поля события в файле CS, IntelliSense предложит нажать клавишу TAB. В результате будет вставлен новый экземпляр делегата, который указывает на метод, обрабатывающий событие.
При нажатии клавиши TAB IntelliSense автоматически завершает оператор и отображает ссылку на обработчик событий в виде выделенного текста в редакторе кода. Для завершения автоматического подключения события IntelliSense предлагает снова нажать клавишу TAB или создать пустую заглушку для обработчика событий.
Если новый делегат, созданный IntelliSense, ссылается на существующий обработчик событий, IntelliSense выводит эти сведения во всплывающей подсказке. Эту ссылку можно изменить — соответствующий текст уже выделен в редакторе кода. В противном случае автоматическое подключение события завершается на этом этапе.
При нажатии клавиши TAB IntelliSense заглушает метод с корректной сигнатурой и размещает указатель в теле обработчика событий.
IntelliSense is a code-completion aid that includes a number of features: List Members, Parameter Info, Quick Info, and Complete Word. These features help you to learn more about the code you're using, keep track of the parameters you're typing, and add calls to properties and methods with only a few keystrokes.
Many aspects of IntelliSense are language-specific. For more information about IntelliSense for different languages, see the topics listed in the See also section.
List Members
A list of valid members from a type (or namespace) appears after you type a trigger character (for example, a period ( . ) in managed code or :: in C++). If you continue typing characters, the list is filtered to include only the members that begin with those characters or where the beginning of any word within the name starts with those characters. IntelliSense also performs "camel case" matching, so you can just type the first letter of each camel-cased word in the member name to see the matches.
After selecting an item, you can insert it into your code by pressing Tab or by typing a space. If you select an item and type a period, the item appears followed by the period, which brings up another member list. When you select an item but before you insert it, you get Quick Info for the item.
In the member list, the icon to the left represents the type of the member, such as namespace, class, function, or variable. For a list of icons, see Class View and Object Browser icons. The list may be quite long, so you can press PgUp and PgDn to move up or down in the list.
You can invoke the List Members feature manually by typing Ctrl+J, choosing Edit > IntelliSense > List Members, or by choosing the List Members button on the editor toolbar. When it is invoked on a blank line or outside a recognizable scope, the list displays symbols in the global namespace.
To turn List Members off by default (so that it does not appear unless specifically invoked), go to Tools > Options > All Languages and deselect Auto list members. If you want to turn off List Members only for a specific language, go to the General settings for that language.
You can also change to suggestion mode, in which only the text you type is inserted into the code. For example, if you enter an identifier that is not in the list and press Tab, in completion mode the entry would replace the typed identifier. To toggle between completion mode and suggestion mode, press Ctrl+Alt+Space, or choose Edit > IntelliSense > Toggle Completion Mode.
Parameter Info
The parameter in bold indicates the next parameter that is required as you type the function. For overloaded functions, you can use the Up and Down arrow keys to view alternative parameter information for the function overloads.
When you annotate functions and parameters with XML Documentation comments, the comments will display as Parameter Info. For more information, see Supply XML code comments.
You can manually invoke Parameter Info by choosing Edit > IntelliSense > Parameter Info, by pressing Ctrl+Shift+Space, or by choosing the Parameter Info button on the editor toolbar.
Quick Info
Quick Info displays the complete declaration for any identifier in your code.
When you select a member from the List Members box, Quick Info also appears.
You can manually invoke Quick Info by choosing Edit > IntelliSense > Quick Info, by pressing Ctrl+K, Ctrl+I, or by choosing the Quick Info button on the editor toolbar.
If a function is overloaded, IntelliSense may not display information for all forms of the overload.
You can turn Quick Info off for C++ code by navigating to Tools > Options > Text Editor > C/C++ > Advanced, and setting Auto Quick Info to false .
Complete Word
Complete Word completes the rest of a variable, command, or function name after you have entered enough characters to disambiguate the term. You can invoke Complete Word by choosing Edit > IntelliSense > Complete Word, by pressing Ctrl+Space, or by choosing the Complete Word button on the editor toolbar.
IntelliSense options
IntelliSense options are on by default. To turn them off, choose Tools > Options > Text Editor and deselect Parameter information or Auto list members if you do not want the List Members feature.
IntelliSense icons
The icons in IntelliSense can convey additional meaning with icon modifiers. These are stars, hearts, and locks layered on top of the object's icon that convey protected, internal, or private, respectively.
Troubleshoot IntelliSense
The IntelliSense options may not work as you expect in certain cases.
The cursor is below a code error. You might not be able to use IntelliSense if an incomplete function or other error exists in the code above the cursor because IntelliSense might not be able to parse the code elements. You can resolve this problem by commenting out the applicable code.
The cursor is in a code comment. You can't use IntelliSense if the cursor is in a comment in your source file.
The cursor is in a string literal. You can't use IntelliSense if the cursor is in the quotation marks around a string literal, as in the following example:
The automatic options are turned off. By default, IntelliSense works automatically, but you can disable it. Even if automatic statement completion is disabled, you can invoke an IntelliSense feature.
IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. Технология IntelliSense для C++ доступна для автономных файлов, а также для файлов, являющихся частью проекта C++. В кроссплатформенных проектах некоторые возможности IntelliSense доступны в файлах .cpp и .c в проекте с общим кодом даже в том случае, если вы находитесь в контексте Android или iOS.
В этой статье представлены общие сведения о функциях IntelliSense в C++. Сведения о том, как настроить проект для IntelliSense, а также устранять проблемы, см. в статье Настройка проекта C++ для IntelliSense.
Возможности IntelliSense в C++
IntelliSense — это имя, присвоенное набору возможностей, которые делают процесс кодирования более удобным. У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор > C/C++ > Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.
Для доступа к IntelliSense можно использовать пункты меню и сочетания клавиш, показанные на следующем изображении.
Завершение операторов и список элементов
Когда вы набираете на клавиатуре ключевое слово, тип, функцию, имя переменной или другие программные элементы, распознаваемые компилятором, редактор подставляет полное слово.
При первом вызове списка элементов отображаются только те элементы, которые доступны для текущего контекста. Если нажать сочетание клавиш CTRL+J, вы увидите полный список элементов, независимо от их доступности. Если данный список вызвать третий раз, будет показан еще более широкой список программных элементов. Список элементов можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор > C/C++ > Общие > Автоматически отображать список членов.
Справка по параметрам
При наборе на клавиатуре открывающей фигурной скобки для вызова функции или угловой скобки в объявлении переменной шаблона класса редактор отображает небольшое окно с типами параметров для каждого события перегрузки функции или конструктора. Полужирным шрифтом выделяется тот элемент, который считается активным в текущий момент. Сведения о параметрах можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор > C/C++ > Общие > Сведения о параметрах.
Краткие сведения
При наведении курсора мыши на переменную появляется небольшое окно, где отображаются сведения о типе и заголовок, в котором определяется тип. Чтобы увидеть сигнатуру функции, наведите указатель мыши на вызов функции. Краткие сведения можно отключить в диалоговом окне Параметры, выбрав Текстовый редактор > C/C++ > Расширенные > Auto Quick Info (Автоматически предоставляемые краткие сведения).
Выделение ошибок
Волнистые линии под программным элементом (переменной, ключевым словом, фигурной скобкой, именем типа и т. д.) указывают на фактическую или возможную ошибку в коде. Зеленая волнистая линия появляется при написании опережающего объявления и напоминает о том, что необходимо написать реализацию. Фиолетовая волнистая линия появляется в общем проекте при наличии ошибки в коде, который не является активным, например, когда вы работаете в контексте Windows, но вводите что-то, что будет ошибкой в контексте Android. Красная волнистая линия указывает на ошибку компилятора или предупреждение в активном коде, с которыми необходимо разобраться.
Выделение кода цветом и шрифты
Используемые по умолчанию цвета и шрифты можно изменить в диалоговом окне Параметры, выбрав Среда > Шрифты и цвета. Здесь можно изменять шрифты не только для редактора, но и для различных окон пользовательского интерфейса. Параметры, относящиеся к C++, начинаются с «C++». Другие параметры относятся ко всем языкам.
Кроссплатформенная технология IntelliSense
В проекте с общим кодом некоторые возможности IntelliSense, например волнистые линии, доступны даже в том случае, если вы работаете в контексте Android. При написании кода, который приводит к ошибке в неактивном проекте, IntelliSense будет по-прежнему отображать волнистые линии, но они будут иметь другой цвет, чем волнистые линии для ошибок в текущем контексте.
Рассмотрим приложение OpenGLES, настроенное для сборки для Android и iOS. На иллюстрации показан редактируемый общий код. На этом изображении активным проектом является iOS.StaticLibrary:
Обратите внимание на следующее.
Переменная приветствия в строке 11 инициализируется с идентификатором HELLO , теперь подчеркнутым красной волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в активном на данный момент проекте iOS.
Если вы измените активный проект на Android, волнистые линии изменятся:
Переменная приветствия в строке 11 инициализируется с идентификатором HELLO , подчеркнутым фиолетовой волнистой линией. Это вызвано тем, что идентификатор HELLO не определен в неактивном на данный момент проекте iOS.
Идентификатор BYE в строке 12 подчеркнут красной волнистой линией. Этот идентификатор не определен в активном проекте.
IntelliSense для автономных файлов
При открытии одного файла за пределами любого проекта функции IntelliSense по-прежнему остаются доступными. Отдельные возможности IntelliSense можно включить и (или) отключить в диалоговом окне Параметры, выбрав Текстовый редактор > C/C++ > Общие. Чтобы настроить IntelliSense для отдельных файлов, которые не входят в проект, найдите раздел IntelliSense и обозреватель для файлов, не входящих в проект.
По умолчанию в IntelliSense с одним файлом используются только стандартные каталоги включения для поиска файлов заголовка. Чтобы добавить дополнительные каталоги, откройте контекстное меню в узле Решение и добавьте каталог в список Исходный код отладки, как показано на следующей иллюстрации:
Включение и отключение функций
У каждого человека существуют свои представления об удобстве, поэтому мы предоставили возможность включать и отключать почти все функции IntelliSense в разделе Текстовый редактор > C/C++ > Дополнительно в диалоговом окне Параметры. Диалоговое окно Параметры доступно через пункт Средства в строке меню.
Читайте также: