visual studio intellicode что это
Общие сведения об IntelliCode
Visual Studio IntelliCode позволяет расширить возможности разработки программного обеспечения за счет применения искусственного интеллекта. IntelliCode предлагает возможности контекстно-зависимого завершения кода, а также рекомендации для разработчиков по применению шаблонов и стилей для работы в команде. Решение IntelliCode доступно в основном установщике Visual Studio и в виде расширения для Visual Studio Code.
Получить дополнительные сведения и подписаться на рассылку новостей и обновлений вы можете на странице, посвященной Visual Studio IntelliCode.
Установка IntelliCode
Перед началом работы убедитесь, что установлена версия Visual Studio или Visual Studio Code, которая поддерживает IntelliCode. Минимальные требования к системе:
В следующей таблице содержатся сведения о получении IntelliCode для вашей среды разработки:
Контекстно зависимое завершение кода
IntelliCode реализует возможности IntelliSense на основе искусственного интеллекта в Visual Studio и Visual Studio Code. Предложения IntelliCode отображаются в начале списка завершения со значком звездочки:
В списке завершения предлагается API, который, скорее всего, понадобится разработчику, вместо того чтобы просто предоставлять их список в алфавитном порядке. При формировании динамического списка IntelliCode учитывает текущий контекст кода разработчика, а также применяет шаблоны, полученные в результате анализа нескольких тысяч крупных высокорейтинговых проектов с открытым исходным кодом на портале GitHub. В результате формируется модель, которая предсказывает наиболее вероятный и наиболее подходящий вызов API.
Разработчики C# в Visual Studio 2022 и более поздних версиях также могут пользоваться преимуществами функции завершения полных строк, которая предсказывает следующий фрагмент кода на основе текущего кода и представляет его как встроенный прогноз.
Возможности Visual Studio
Ознакомьтесь с обзором IntelliCode для Visual Studio, чтобы узнать больше о других функциях, доступных пользователям Visual Studio, например о предложениях IntelliCode.
Поддерживаемые языки
Возможности завершения IntelliSense с использованием искусственного интеллекта поддерживаются для следующих языков:
C#, C++, XAML, JavaScript, TypeScript и Visual Basic для Visual Studio;
Java, JavaScript, TypeScript, Python и SQL для Visual Studio Code.
Телеметрия
Мы собираем некоторые анонимные данные об использовании и ошибках в целях улучшения IntelliCode. Ни один пользовательский код не отправляется в корпорацию Майкрософт, но мы собираем сведения об использовании результатов IntelliCode.
В Visual Studio вы можете отказаться от участия в Программе улучшения Visual Studio. В этом случае также отключится сбор данных для IntelliCode. В строке меню выберите Справка Обратная связь Параметры. В диалоговом окне Программа улучшения Visual Studio выберите Нет, я не хочу участвовать и затем нажмите ОК.
В Visual Studio Code вы можете отключить создание отчетов о телеметрии, следуя этим инструкциям.
IntelliCode может периодически предлагать вам пройти анонимный опрос. Кроме того, при желании вы можете подписаться на рассылку новостей и обновлений.
Общие сведения об IntelliCode для Visual Studio
IntelliCode для Visual Studio предоставляет следующие функциональные возможности:
Технология IntelliSense на основе искусственного интеллекта для нескольких языков, позволяющая прогнозировать API, который, скорее всего, понадобится разработчику, вместо того чтобы просто предоставлять их список в алфавитном порядке. Он формирует список динамически на основе текущего контекста кода конкретного разработчика.
Для пользователей, использующих язык C#, в дополнение к предложениям членов IntelliCode также предоставляет варианты завершения аргумента. Эта функция помечает звездочкой имена аргументов, которые вы с наибольшей долей вероятности будете использовать при вызове метода, и помещает их в начало списка завершения. Список завершения появляется, когда вы начинаете вводить текст внутри круглых скобок или нажимаете сочетание клавиш CTRL ПРОБЕЛ.
Разработчики C# в Visual Studio 2022 и более поздних версиях также извлекают выгоду от функции завершения полных строк, которая предсказывает следующий фрагмент кода на основе текущего кода и представляет его как встроенное предсказание.
Определение стиля кода и соглашений по форматированию для динамического создания файла Editorconfig на основе вашей базы кода (только для C#).
Предложения: IntelliCode локально отслеживает ваши изменения, определяет выполнение повторяющегося действия и предлагает применить это же действие в других похожих местах (только для C#).
Предварительная версия функций
Некоторые функциональные возможности IntelliCode до сих пор находятся на стадии предварительной версии и поэтому не имеют гарантий поддержки в будущем. Предварительные версии функций по умолчанию отключены. Чтобы включить или отключить предварительные версии функций IntelliCode, выберите Сервис > Параметры > IntelliCode. В разделе Функции предварительной версии выберите Включить, Отключить или По умолчанию, чтобы настроить поведение отдельных функций.
Поддерживаемые языки
Возможности завершения IntelliSense с использованием искусственного интеллекта поддерживаются для следующих языков:
Предварительные требования
Начиная с версии Visual Studio 2019 16.4 решение IntelliCode доступно в виде встроенного компонента в случае установки поддерживаемой рабочей нагрузки.
Чтобы просмотреть все основанные на искусственном интеллекте возможности IntelliSense для конкретных языков, вам может потребоваться более поздняя версия:
Поддерживаемые рабочие нагрузки
IntelliCode входит в Visual Studio 2019 версии 16.4 как часть любой из следующих рабочих нагрузок:
Диагностика
Если вы не видите предложения IntelliCode, возможно, у вас установлены расширения, которые переопределяют пользовательский интерфейс IntelliSense. В таком случае может блокироваться вывод помеченных звездочками предложений IntelliCode в верхней части списка. Чтобы убедиться, что это поведение вызвано расширениями, отключите их, а затем попробуйте использовать IntelliSense еще раз. Если расширение поддерживает это, также можно отключить его функции автозавершения.
Если это не устранит проблему автоматически, сообщите о проблеме через функцию Visual Studio Сообщить о проблеме и упомяните IntelliCode в отчете.
Телеметрия
IntelliCode собирает некоторые обезличенные данные об использовании и ошибках в целях улучшения продукта. Никакой пользовательский код не отправляется в корпорацию Майкрософт, но мы собираем сведения об использовании результатов IntelliCode.
Чтобы отключить сбор данных для IntelliCode, откажитесь от участия в программе улучшения Visual Studio. В строке меню выберите Справка > Обратная связь > Параметры. В диалоговом окне Программа улучшения Visual Studio выберите Нет, я не хочу участвовать и затем нажмите ОК.
Для создания моделей, которые изучают шаблоны в вашем коде C#, вам необходимо войти в Visual Studio, чтобы получить доступ к службе обучения моделей. Служба обучения собирает минимально необходимый объем данных для создания модели. Корпорация Майкрософт хранит обученные модели в защищенном виде в вашей учетной записи, и только вы решаете, с кем вы хотите поделиться ими. Ваша модель и результаты ее обучения на основе вашего кода остаются конфиденциальными. Дополнительные сведения см. в статье Данные и конфиденциальность.
Отзывы
Чтобы сообщить об ошибке в IntelliCode для Visual Studio, воспользуйтесь командой меню Справка Отправить отзыв > Сообщить о проблеме. Если перед отправкой отчета вы воспроизведете проблему, в него автоматически будут включены журналы.
Чтобы запросить функцию, щелкните Отправить отзыв > Этот продукт в нижней части страницы, чтобы создать новый запрос. Укажите, что это запрос функции.
Visual Studio IntelliCode
Разработка с помощью ИИ
IntelliSense с элементами ИИ — C#
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
Возможности IntelliCode не ограничиваются завершением операторов. Справка по сигнатурам также дает рекомендации по перегрузке метода, наиболее подходящей в данной ситуации.
Завершения команд
IntelliCode может предоставлять рекомендации по коду и отправлять их участникам вашей команды. В этой предварительной версии функции вы можете построить командную модель, чтобы давать рекомендации по коду, которого нет в открытом доступе, например методов из ваших собственных служебных классов или вызовов библиотек для конкретных доменов. Интегрируйте собственные задачи сборки в конвейер, чтобы завершение кода для команды выполнялось в соответствии с последними изменениями в репозитории.
Дополнение аргументов
Помимо завершения сигнатур операторов, IntelliCode также рекомендует аргументы, помогая быстро выбрать подходящий аргумент.
Определение правил стилистического оформления и форматирования кода
IntelliCode устанавливается по умолчанию с любой рабочей нагрузкой, которая поддерживает C#, C++, TypeScipt/JavaScript или XAML в Visual Studio 2022.
IntelliSense с элементами ИИ — C++
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
При написании кода на C++ функция IntelliCode поможет вам использовать популярные библиотеки, например STL. Контекст вашего кода используется для перемещения наиболее полезных рекомендаций в начало списка. Например, при использовании переменной std::string в цикле while метод substr оказывается в начале.
Завершение кода для команды разработчиков (предварительная версия — C++)
IntelliCode может предоставлять рекомендации по коду и отправлять их участникам вашей команды. В этой предварительной версии функции вы можете построить командную модель для завершения кода, чтобы давать рекомендации по коду, которого нет в открытом доступе, например методы из ваших собственных служебных классов или вызовы библиотек для конкретных доменов. Включив автоматическое получение командных моделей, вы также можете без труда предоставить общий доступ к командной модели любому пользователю, работающему в соответствующем репозитории.
Эта функция по умолчанию устанавливается с любой рабочей нагрузкой, поддерживающей C#, C++, TypeScipt и JavaScript или XAML в Visual Studio 2022.
IntelliSense с элементами ИИ — Java
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
IntelliCode отлично работает с популярными платформами и библиотеками Java, например Java SE и Spring. Эта функция полезна для создания как монолитных веб-служб, так и современных микрослужб.
Эта функция доступна в виде расширения для Visual Studio Code (выпуск 1.29 от октября 2018 г.)
IntelliSense с элементами ИИ — Python
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
IntelliCode повысит продуктивность вашей работы благодаря широкому ассортименту пакетов Python как при написании простых скриптов с помощью модулей os или sys, так и при создании веб-сайтов на Django или Flask либо работе с модулями обработки и анализа данных, например numpy и tensorflow.
Эта функция доступна в виде расширения для Visual Studio Code (выпуск 1.29 от октября 2018 г.)
IntelliSense с элементами ИИ — SQL Server
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
IntelliCode хорошо работает с запросами T-SQL, предлагая подходящие варианты в зависимости от построения запроса и помещая такие предложения в верхнюю часть списка IntelliSense при вводе запроса.
Эта функция также работает с SQL Server после установки расширения mssql (1.7.0) для Visual Studio Code.
IntelliSense со вспомогательными элементами – TypeScript/JavaScript
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
IntelliCode облегчает работу с разными библиотеками JavaScript — при написании клиентского кода на платформах React, Angular или Vue и во время серверной разработки с помощью Node.js.
Эта функция устанавливается по умолчанию с любой рабочей нагрузкой, которая поддерживает C #, C ++, TypeScipt/JavaScript или XAML в Visual Studio 2022 и доступна как расширение Visual Studio Code (октябрь 2018, выпуск 1.29).
IntelliSense с элементами ИИ — XAML
IntelliCode помещает наиболее полезные методы в начало списка завершения, тем самым экономя ваше время. Рекомендации IntelliCode основаны на тысячах проектов с открытым исходным кодом с сайта GitHub, каждый из них получил оценку более 100 звезд. Список завершения перестраивается с учетом контекста вашего кода — типичные методы перемещаются в начало.
Рекомендации по элементам управления и свойствам
При написании кода XAML функция IntelliCode рекомендует элемент управления, чаще всего используемый в этом контексте. Кроме того, в контексте элемента управления она рекомендует чаще всего используемые свойства в том же порядке, в котором они обычно используются.
Эта функция по умолчанию устанавливается с любой рабочей нагрузкой, поддерживающей C#, C++, TypeScipt и JavaScript или XAML в Visual Studio 2022.
Visual Studio IntelliCode
Microsoft
Visual Studio IntelliCode
The Visual Studio IntelliCode extension provides AI-assisted development features for Python, TypeScript/JavaScript and Java developers in Visual Studio Code, with insights based on understanding your code context combined with machine learning.
You’ll need Visual Studio Code October 2018 Release 1.29.1 or later to use this extension. For each supported language, please refer to the «Getting Started» section below to understand any other pre-requisites you’ll need to install and configure to get IntelliCode completions.
For C#, C++, TypeScript/JavaScript, and XAML support in the Visual Studio IDE, check out the IntelliCode extension on the Visual Studio Marketplace.
About IntelliCode
This extension provides AI-assisted IntelliSense by showing recommended completion items for your code context at the top of the completions list. The example below shows this in action for Python code.
When it comes to overloads, rather than taking the time to cycle through the alphabetical list of member, IntelliCode presents the most relevant one first. In the example shown above, you can see that the predicted APIs that IntelliCode elevates appear in a new section of the list at the top with members prefixed by a star icon. Similarly, a member’s signature or overloads shown in the IntelliSense tool-tip will have additional text marked by a small star icon and wording to explain the recommended status. This visual experience for members in the list and the tool-tip that IntelliCode provides is not intended as final – it is intended to provide you with a visual differentiation for feedback purposes only.
Contextual recommendations are based on practices developed in thousands of high quality, open-source projects on GitHub each with high star ratings. This means you get context-aware code completions, tool-tips, and signature help rather than alphabetical or most-recently-used lists. By predicting the most likely member in the list based on your coding context, AI-assisted IntelliSense stops you having to hunt through the list yourself.
Getting Started
Install the Visual Studio IntelliCode extension by clicking the install link on this page, or install from the Extensions tab in Visual Studio Code. Then follow the language-specific instructions below.
For TypeScript/JavaScript users:
For Python users:
Set up the Python extension by following the steps in the Python tutorial
Start editing Python files
After the Python language server finishes initializing, you should now see recommended completions
For Java users:
Set up the Java extension for Visual Studio Code by following the steps in the Java Tutorial
Make sure that you have a minimum of Java 8 Update 151 installed
Reload Visual Studio Code after enabling the Java extension
After the Java language server finishes initializing, you should now see recommended completions
For T-SQL users:
Set up the mssql extension for Visual Studio Code by following the steps in the T-SQL Tutorial
Reload Visual Studio Code after enabling the mssql extension
After the mssql language server finishes initializing, you should now see recommended completions
How do I report feedback and issues?
You can file an issue on our IntelliCode for VS Code extension GitHub feedback repo.
You can also check out our FAQ
Future Plans
Как писать только хороший код
В мае на Build 2018 мы представили расширение Visual Studio IntelliCode. Оно помогает писать код быстрее, избегать ошибок и предлагает разработчикам подсказки, предугадывая их цели. Несколько дней назад вышло обновление, значительно направленное в сторону улучшения взаимодействия с C#. Подробнее под катом!
После объявления о выпуске Visual Studio IntelliCode на конференции Build 2018 мы рады представить обновленное расширение Visual Studio IntelliCode, поддерживающее стандарты оформления кода для C#. Оно поможет вам и вашим коллегам получить более читаемый и согласованный код. Если вы не знакомы с расширением Intellicode, то в него уже встроена технология IntelliSense с поддержкой ИИ, о которой говорится в первоначальном объявлении. Если расширение установлено, то, вероятно, оно уже обновилось автоматически. Если нет, то вы можете установить расширение прямо сейчас, перейдя по этой ссылке.
Ввод стандартов оформления кода и форматирования в базу
Если код согласован, то его удобнее обслуживать и читать. Недавнее исследование Microsoft Research в этой области показало, что 18 процентов комментариев с просьбами о помощи с проблемами кода были связаны с ошибками стандартов оформления.
Создав этот файл один раз, вы сможете с его помощью поддерживать единообразие базы исходного кода для всех членов группы. Также можно быстро и просто устранять проблемы с форматированием, используя меню быстрых действий Quick Ctrl (Ctrl+ или Alt+Enter) или новую настраиваемую функцию Format Document (Ctrl+K, D) в Visual Studio 2017 версии 15.8 Preview 3 и выше.
Вы можете начать генерацию EditorConfig через обозреватель решений. Просто нажмите правой кнопкой мыши на папку с решением, проектом или подпапкой, к которой вы хотите применить стандарт, нажмите add («добавить»), а затем EditorConfig file (IntelliCode) (Файл EditorConfig (IntelliCode)). В случае с проектом вы также можете нажать add («добавить»), затем new item («новый элемент») и EditorConfig file (IntelliCode) (Файл EditorConfig (IntelliCode)).
Как исправить код, чтобы он соответствовал новым стандартам
Существует несколько способов очистки кода для соответствия новым стандартам в зависимости от ваших целей.
Если возникают проблемы с форматом или стилем и вы используете Visual Studio 2017 15.8 Preview 3 и выше, то обратитесь к расширенной функции Format Document, чтобы дополнительно очистить код текущего документа. Она поможет исправить код в этом документе, и он будет соответствовать только что созданным стандартам, а вы сможете очищать файлы сразу по мере работы с ними, обеспечивая согласованность.
Обратите внимание, что дополнительная возможность форматирования документа затрагивает только определенный набор проблем, который можно изменить в меню Tools > Options > Text Editor > C# > Code Style > Formatting > General > Format Document Settings (Experiment) (Инструменты > Параметры > Текстовый редактор > C# > Стиль кода > Форматирование > Общие > Настройки формата документа (экспериментальная)):
И еще отметьте для себя, что настройки по умолчанию не исправляют некоторые стандарты стиля. Вы можете добавить их с помощью настроек инструментов (например, настройка «Применить скрытые/показываемые типы» запустит правила стиля, связанные с использованием переменных в коде).
Что нужно знать при работе с EditorConfig
Есть несколько известных проблем, которые следует учитывать при работе с EditorConfig:
Если вы используете для создания файла EditorConfig путь к диалоговому окну File-New Item в версиях Visual Studio, вышедших до 15.8 Preview 3, то должны вручную удалить лишний префикс «1» в имени файла EditorConfig. Это исправлено в версии 15.8 Preview 4.
Спасибо вам за проявленный интерес к IntelliCode. Мы будем рады получать ваши отзывы и совершенствовать IntelliCode по мере развития проекта. Используйте страницу предложений, чтобы высказать свое мнение. Если вы обнаружите какие-либо проблемы с расширением, используйте встроенную в Visual Studio функцию Report a Problem (Сообщить о проблеме), напишите в вашем отчете, что речь идет о IntelliCode. Это поможет нам собрать необходимую информацию для решения проблемы.
Внесите свой вклад
По мере того как мы расширяем возможности, чтобы охватить больше вариантов использования и языков программирования, мы будем предоставлять ограниченный предварительный доступ к IntelliCode.
Зарегистрируйтесь для получения доступа к ограниченной пробной версии, чтобы стать участником теста и узнать об изменениях первыми.