Меню Закрыть

Visual studio 2017 intellisense

Содержание

Мы обнаружили, что в вашей сети доступ к YouTube устанавливается через стороннее незарегистрированное приложение.
Использование таких приложений может привести к негативным последствиям, в том числе установке вредоносного ПО, несанкционированному доступу к вашим данным и быстрому расходу заряда батареи.

Просим вас пользоваться официальными приложениями YouTube (для Android или для iOS) и YouTube Go. Неподтвержденные приложения следует удалить со своего устройства.

Чтобы вернуться на YouTube, введите указанный ниже код подтверждения.

Система Visual Studio устанавливает много настроек средств IntelliSense по умолчанию, но многие из них можно изменить с помощью диалогового окна Options, если их значения, заданные по умолчанию, не устраивают разработчика. Некоторые из этих настроек связаны только с определенным языком программирования.

Общие настройки

Сначала рассмотрим настройки из группы Keyboard в разделе Environment. Каждой команде, доступной в системе Visual Studio, соответствует вполне определенная запись в списке комбинаций клавиш (на рисунке ниже показано диалоговое окно Options, которое открывается по команде Tools —> Options):

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

Комбинации клавиш, заданные по умолчанию, для команд системы IntelliSense

Команда Комбинация клавиш Описание
Edit.QuickInfo ,

Выводит на экран информацию команды Quick Info о выбранном элементе

Edit.CompleteWord

Пытается дополнить слово, если существует однозначное соответствие, или выводит список, если есть несколько совпадений

Edit.ToggleConsumeFirstCompletionMode

Переключает систему IntelliSense из режима подсказки в режим дополнения

Edit.ParameterInfo

Выводит на экран информацию о списке параметров вызываемой функции

Edit.InsertSnippet ,

Открывает диалоговое окно Code Snippet, в котором можно выбрать фрагмент кода, чтобы вставить его автоматически (создание и использование сниппетов мы рассмотрим позже)

Edit.GenerateMethodStub ,

Генерирует полную заглушку метода по шаблону

Edit.ImplementAbstractClassStubs нет

Генерирует определения абстрактного класса из заглушки

Edit.ImplementInterfaceStubsExplicitly нет

Генерирует явную реализацию интерфейса для определения класса

Edit.ImplementInterfaceStubsImplicitly нет

Генерирует неявную реализацию интерфейса для определения класса

Используя способы, описанные в статье "Горячие клавиши в Visual Studio", можно добавить новые комбинации клавиш или изменить существующие для любой команды.

Дополнение инструкции

Работой системы IntelliSense можно управлять либо в глобальном масштабе, как показано на рисунке ниже, либо для каждого языка программирования в отдельности. Для того чтобы определить способ вывода списка членов классов или вообще отменить его вывод, на закладке General в группе All Languages диалогового окна Options можно изменить настройки Statement Completion:

Настройки для языка C#

Кроме общих настроек интегрированной среды разработки и языков программирования для системы IntelliSense, некоторые языки, например C#, имеют дополнительную закладку для определения собственных настроек. С помощью закладки настроек для языка C#, показанной на рисунке ниже, можно также задать способ вызова и использования средств технологии IntelliSense.

Во-первых, можно отключить список дополнений, чтобы они не появлялись автоматически. Некоторые разработчики предпочитают делать именно так, потому что списки членов классов мешают им набирать тексты своих программ. Если список дополнений выводится не автоматически, а только по вызову, то пользователь может сам решить, что включать в эти списки, помимо стандартных записей, включая ключевые слова и фрагменты кода.

Для того чтобы выбрать запись в списке членов классов, можно использовать любой из символов, доступных в разделе Selection In Completion List, или нажать клавишу пробела. В заключение, как указывалось ранее, система Visual Studio автоматически выделит тот член класса в списке, который использовался последним. В языке C# можно либо отключить это свойство, либо очистить историю.

Дополнительные возможности системы IntelliSense

Кроме основных аспектов технологии IntelliSense, в системе Visual Studio 2013 реализованы также дополнительные функциональные возможности интегрированной среды разработки, которые тоже относятся к этой технологии. Эти свойства подробно обсуждаются позже, а в этой статье приводится лишь их краткое описание.

Сниппеты

Сниппеты (code snippets) — это фрагменты кода, которые можно автоматически генерировать и вставлять в свой собственный код вместе с соответствующими ссылками и директивами using, помечая переменные фразы, чтобы облегчить их замену. Для того чтобы открыть диалоговое окно Code Snippets, следует нажать клавиши , .

В поисках требуемого сниппета можно перемещаться по иерархии каталогов сниппетов. Если разработчик знает комбинацию клавиш, установленную для конкретного сниппета, он может просто нажать ее и клавишу , и система Visual Studio вставит сниппет, не открывая диалоговое окно. Мощь сниппетов будет продемонстрирована в одной из следующих статей.

Комментарии XML

Комментарии XML используются как способ автоматического документирования проектов и решений. Еще одним преимуществом использования XML-комментариев в своем коде является то, что система Visual Studio может использовать их в своей системе IntelliSense для вывода подсказок и более полной информации о параметрах, помимо простой информации о типах, как это делается в обычных пользовательских классах. Мы приведем примеры использования комментариев XML в одной из следующих статей.

Читайте также:  Kali linux e17 64 bit

Добавление собственных схем IntelliSense

Пользователь может добавить собственные схемы IntelliSense, которые бывают полезными для редактирования XML- и HTML-файлов. Для этого следует создать правильно отформатированный XML-файл и инсталлировать его в подкаталог Common7Packagesschemasxml каталога инсталляции системы Visual Studio (по умолчанию C:Program FilesMicrosoft Visual Studio <версия>). Например, можно расширить возможности технологии IntelliSense для XML-редактора, включив свою собственную схему определений. Описание процесса создания таких схем, выходит за рамки нашего руководства, но о нем можно прочитать в статье "Функции IntelliSense редактора XML".

Итак, в этой и предыдущих статьях мы рассмотрели систему IntelliSense. Функциональные возможности технологии IntelliSense выходят за пределы основного окна редактирования кода. Мощь технологии IntelliSense, проявляющаяся в автоматическом дополнении инструкций и параметров, можно использовать во многих других инструментальных окнах, например Command и Immediate. Любые ключевые слова и даже переменные и объекты, известные в текущем контексте на протяжении сессии отладки, могут быть найдены с помощью списка членов классов IntelliSense. Технология IntelliSense во всех ее проявлениях значительно повышает эффективность работы системы Visual Studio по сравнению с большинством других доступных инструментов. Постоянно отслеживания нажатия клавиш, чтобы обеспечить обратную визуальную связь или автоматическое дополнение и генерацию кода, система IntelliSense позволяет разработчикам исключительно быстро, эффективно и правильно набирать программы с первой попытки.

Иногда может понадобиться вручную настроить проект C++ для правильной работы функции IntelliSense. In some cases, you might need to manually configure your C++ project to get IntelliSense working properly. Для проектов MSBuild (на основе файлов с расширением .vcxproj) можно настроить параметры в свойствах проекта. For MSBuild projects (based on .vcxproj files), you can adjust settings in project properties. Для других типов проектов нужно настроить параметры в файле CppProperties.json, находящемся в корневом каталоге проекта. For non-MSBuild projects, you adjust settings in the CppProperties.json file in the root directory of the project. Иногда требуется создать файл указаний, чтобы помочь IntelliSense понять определения макросов. In some cases, you may need to create a hint file to help IntelliSense understand macro definitions. Интегрированная среда разработки Visual Studio помогает найти и исправить проблемы с функцией IntelliSense. The Visual Studio IDE helps you identify and fix IntelliSense problems.

IntelliSense для одного файла Single-file IntelliSense

Когда вы открываете файл, который не включен в проект, Visual Studio предоставляет определенную поддержку IntelliSense, но по умолчанию ошибки не подчеркиваются волнистой линией. When you open a file that is not included in a project, Visual Studio provides some IntelliSense support but by default no error squiggles are shown. Если на панели навигации указано Прочие файлы, это может быть причиной того, что ошибочный код не подчеркивается волнистой линией или не определен макрос препроцессора. If the Navigation Bar says Miscellaneous Files, then that probably explains why you are not seeing error squiggles under incorrect code, or why a preprocessor macro is not defined.

Проверка списка ошибок Check the Error List

Если файл не открыт в режиме одного файла и функция IntelliSense работает неправильно, сначала нужно проверить окно "Список ошибок". If a file is not open in single-file mode, and IntelliSense is not working correctly, the first place to check is the Error List window. Чтобы увидеть все ошибки IntelliSense в текущем исходном файле вместе со всеми включенными файлами заголовков, выберите в раскрывающемся списке Сборка и IntelliSense: To see all the IntelliSense errors for the current source file together with all included header files, choose Build + IntelliSense in the dropdown:

В IntelliSense отображается не более 1000 ошибок. IntelliSense produces a maximum of 1000 errors. Если файлы заголовков, включенные в исходный файл, содержат более 1000 ошибок, в самом начале исходного файла отображается только один маркер ошибки в виде волнистой линии. If there are over 1000 errors in the header files included by a source file, then the source file shows only a single error squiggle at the very start of the source file.

Проверка правильности путей #include Ensure #include paths are correct

Проекты MSBuild MSBuild projects

Если вы запускаете сборку проектов вне интегрированной среды разработки Visual Studio и сборка выполняется успешно, но IntelliSense работает неправильно, возможно, среда командной строки не согласована с параметрами проекта для одной или нескольких конфигураций. If you run your builds outside of the Visual Studio IDE, and your builds are succeeding but IntelliSense is incorrect, it is possible that your command line is out of sync with the project settings for one or more configurations. Щелкните правой кнопкой мыши узел проекта в обозревателе решений и убедитесь, что все пути #include правильно указаны для текущей конфигурации и платформы. Right-click on the project node in Solution Explorer and make sure that all #include paths are correct for the current configuration and platform. Если для всех конфигураций и платформ используются одинаковые пути, выберите Все конфигурации и Все платформы, а затем проверьте правильность путей. If the paths are identical in all configurations and platforms, you can select All configurations and All platforms and then verify that the paths are correct.

Читайте также:  Принтер ricoh sp c240dn

Чтобы просмотреть текущие значения макросов сборки, например VC_IncludePath, выберите строку "Включаемые каталоги" и щелкните раскрывающийся список справа. To see the current values for build macros such as VC_IncludePath, select the Include Directories line and click the dropdown on the right. Затем выберите и нажмите кнопку Макросы. Then choose and click on the Macros button.

Проекты, использующие файл makefile Makefile projects

Для проектов Makefile, которые основаны на шаблоне проектов NMake, выберите на левой панели NMake, а затем Путь поиска включаемых файлов в категории IntelliSense: For Makefile projects that are based on the NMake project template, choose NMake in the left pane and then choose Include search path under the IntelliSense category:

Проекты в виде папок Open Folder projects

При работе с проектами CMake убедитесь, что пути #include в файле CMakeLists.txt указаны правильно для всех конфигураций. For CMake projects, make sure that #include paths are specified correctly for all configurations in CMakeLists.txt. Для других типов проектов возможно, потребуется использовать файл CppProperties.json. Other project types might require a CppProperties.json file. Дополнительные сведения см. в статье о настройке IntelliSense с помощью файла CppProperties.json. For more information, see Configure IntelliSense with CppProperties.json. Убедитесь, что пути указаны правильно для всех конфигураций, определенных в этом файле. Make sure that the paths are correct for each configuration that is defined in the file.

Если в файле CppProperties.json есть синтаксическая ошибка, функция IntelliSense для затронутых файлов будет работать неправильно. If there is a syntax error in the CppProperties.json file, IntelliSense in the affected files will be incorrect. В окне вывода Visual Studio будет отображаться ошибка. Visual Studio will display the error in the Output Window.

Ошибки анализа тегов Tag parser issues

Анализатор тегов — это анализатор кода C++ с нечеткой логикой, который используется для просмотра и навигации. The tag parser is a "fuzzy" C++ parser that is used for browsing and navigation. Он работает очень быстро, но не пытается полностью интерпретировать каждую конструкции кода. It is very fast but does not attempt to completely comprehend every code construct.

Например, он не вычисляет значения макросов препроцессора и поэтому может неправильно анализировать код, в котором они активно используются. For example, it doesn’t evaluate preprocessor macros, and therefore it may incorrectly parse code that makes heavy use of them. Когда анализатор тегов встречает незнакомую конструкцию кода, он может пропустить всю эту область кода. When the Tag Parser encounters an unfamiliar code construct, it may skip that entire region of code.

Есть два типичных проявления этой проблемы в Visual Studio: There are two common ways in which this problem manifests in Visual Studio:

Если на панели навигации отображается корневой макрос, значит, текущее определение функции пропущено: If the Navigation Bar shows an innermost macro, then the current function definition was skipped:

Интегрированная среда разработки предлагает создать определение для функции, которая уже определена: The IDE offers to create a function definition for a function that is already defined:

Чтобы устранить подобные проблемы, создайте файл с именем cpp.hint в корневом каталоге решения. To fix these kinds of problems, add a file named cpp.hint to the root of your solution directory. Дополнительные сведения см. в статье Файлы подсказок. For more information, see Hint Files.

Ошибки анализатора тегов отображаются в окне Список ошибок. Tag parser errors appear in the Error List window.

Проверка параметров проекта с помощью журнала ведения диагностики Validate project settings with diagnostic logging

Чтобы проверить, использует ли компилятор IntelliSense правильные параметры, например включаемые пути и макросы препроцессора, включите журнал ведения диагностики для командных строк IntelliSense в разделе Средства > Параметры > Текстовый редактор > C/C++ > Дополнительно > Запись данных диагностики. To check whether IntelliSense compiler is using correct compiler options, including Include Paths and Preprocessor macros, turn on Diagnostic Logging of IntelliSense command lines in Tools > Options > Text Editor > C/C++ > Advanced > Diagnostic Logging. Установите следующие значения параметров: Включить ведение журнала — True, Уровень ведения журналов — 5 (самый подробный) и Фильтр ведения журналов — 8 (журнал IntelliSense). Set Enable Logging to True, Logging Level to 5 (most verbose), and Logging Filter to 8 (IntelliSense logging).

Читайте также:  Word квадратики вместо текста

В окне вывода теперь будут показаны командные строки, которые передаются в компилятор IntelliSense. The Output Window will now show the command lines that are passed to the IntelliSense compiler. Вот пример выходных данных: Here is a sample output:

Возможно, эти сведения помогут определить, почему IntelliSense выдает неточную информацию. This information may help you understand why IntelliSense is providing inaccurate information. Например, если включаемая папка вашего проекта содержит строку $(MyVariable)Include, а в журнале диагностики в качестве включенного пути отображается /IInclude, значит, переменная $(MyVariable) не была вычислена и была удалена из окончательного включаемого пути. For example, if your project’s Include directory contains $(MyVariable)Include, and the diagnostic log shows /IInclude as an Include path, it means that $(MyVariable) wasn’t evaluated, and was removed from the final include path.

Компиляция IntelliSense About the IntelliSense build

Visual Studio использует выделенный компилятор C++ для создания и обслуживания базы данных, используемой для всех функций IntelliSense. Visual Studio uses a dedicated C++ compiler to create and maintain the database that powers all the IntelliSense features. Чтобы синхронизировать базу данных IntelliSense с кодом, после определенных изменений в параметрах проекта или в исходных файлах Visual Studio автоматически запускает в фоновом режиме задачи компиляции только для IntelliSense. To keep the IntelliSense database in sync with the code, Visual Studio automatically launches IntelliSense-only builds as background tasks in response to certain changes made in the project settings or source files.

Но иногда Visual Studio может не обновлять базу данных IntelliSense своевременно. However, in some cases Visual Studio might not update the IntelliSense database in a timely manner. Например, после выполнения команды git pull или git checkout Visual Studio может потребоваться вплоть до часа для того, чтобы обнаружить изменения в файлах. For example, when you run a git pull or git checkout command, Visual Studio might take up to an hour to detect changes in the files. Вы можете принудительно запустить повторное сканирование всех файлов решения. Для этого щелкните правой кнопкой мыши узел проекта в обозревателе решений и выберите Повторить сканирование решения. You can force a rescan of all files in a solution by right-clicking on the project node in Solution Explorer and choosing Rescan Solution.

Устранение ошибок компиляции IntelliSense Troubleshooting IntelliSense build failures

При компиляции IntelliSense не создаются двоичные файлы, но она также может завершиться с ошибкой. An IntelliSense build does not produce binaries, but it can still fail. Одна из возможных причин ошибки — использование пользовательских файлов с расширениями .props или .targets. One possible cause for failure is custom .props or .targets files. В Visual Studio 2017 версии 15.6 и более поздней ошибки сборки только для IntelliSense отображаются в окне вывода. In Visual Studio 2017 version 15.6 and later, IntelliSense-only build errors are logged to the Output window. Чтобы их увидеть, в раскрывающемся списке Показать выходные данные из выберите Решение: To see them, set Show output from to Solution:

Сообщение об ошибке может содержать указание включить трассировку во время разработки: The error message might instruct you to enable design-time tracing:

Если присвоить переменной среды TRACEDESIGNTIME значение true и перезапустить Visual Studio, вы найдете в каталоге %TEMP% файл журнала, который может помочь при диагностике ошибки компиляции. If you set the environment variable TRACEDESIGNTIME to true and restart Visual Studio, you will see a log file in the %TEMP% directory, which might help diagnose the build failure.

Дополнительные сведения о переменной среды TRACEDESIGNTIME см. в статьях о Roslyn и общей системе проектов. To learn more about TRACEDESIGNTIME environment variable, see Roslyn and Common Project System. Сведения в этих статьях относятся и к проектам C++. The information in these articles is relevant for C++ projects.

Рекомендуем к прочтению

Добавить комментарий

Ваш адрес email не будет опубликован.