Перейти к содержимому

Intellicode visual studio что это

  • автор:

Microsoft представила инструмент для улучшения кода IntelliCode

На конференции Microsoft Build 2018 корпорация представила функцию IntelliCode, которая помогает писать код быстрее и избегать ошибок.

В рамках конференции разработчиков Microsoft Build 2018 Microsoft анонсировала функцию Visual Studio IntelliCode, которая помогает писать код быстрее и избегать ошибок. Сервис предлагает разработчику подсказки-шаблоны, предугадывая его цели.

Как это работает?

IntelliCode — это новое поколение IntelliSense, сообщает TechCrunch. В процессе машинного обучения нейросеть обработала более 2000 репозиториев GitHub. Она предлагает оптимальный код с учетом размера программы, сферы ее применения и других данных. Пока инструмент доступен только для работы с C# в Visual Studio 2017. Со временем корпорация планирует добавить поддержку других языков.

Напомним, в мае 2018 года Microsoft выпустила обновление редактора Visual Studio Code. В версии 1.23 появилась поддержка 87 свойств CSS, новые опции в меню контекстного поиска, а полям include и exclude в «Поиске» вернули прежний вид.

IntelliCode: разработка кода с поддержкой ИИ в Visual Studio

GitHub Copilot, GitHub Copilot Chat и IntelliCode обеспечивают разработку с поддержкой искусственного интеллекта в Visual Studio, помогая повысить производительность и эффективность при написании кода.

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

Помимо предоставления предложений участников, IntelliCode также обеспечивает завершение аргументов. Эта функция помечает звездочкой имена аргументов, которые вы с наибольшей долей вероятности будете использовать при вызове метода, и помещает их в начало списка завершения. Список завершения появляется, когда вы начинаете вводить текст внутри круглых скобок или нажимаете сочетание клавиш CTRL+ПРОБЕЛ.

Screenshot of argument completion in IntelliCode for Visual Studio.

Screenshot of suggestions for C# in Visual Studio.

IntelliCode локально отслеживает изменения, обнаруживает при выполнении повторяющегося действия и предлагает предложения для применения этого же действия в других аналогичных местах (только C#).

Автозаполнения кода с учетом контекста

IntelliCode предоставляет IntelliSense с поддержкой ИИ для нескольких языков. Предложения IntelliCode отображаются в начале списка завершения со значком звездочки:

Screenshot of starred IntelliSense suggestions using IntelliCode in Visual Studio.

В списке завершения предлагается API, который, скорее всего, понадобится разработчику, вместо того чтобы просто предоставлять их список в алфавитном порядке. При формировании динамического списка IntelliCode учитывает текущий контекст кода разработчика, а также применяет шаблоны, полученные в результате анализа нескольких тысяч крупных высокорейтинговых проектов с открытым исходным кодом на портале GitHub. В результате формируется модель, которая предсказывает наиболее вероятный и наиболее подходящий вызов API.

Screenshot of C# whole-line autocompletions in Visual Studio.

Разработчики C# в Visual Studio 2022 и более поздних версиях также получают преимущества автозаполнения всей строки, которые прогнозируют следующий фрагмент кода на основе текущего кода до сих пор и представляют его как встроенный прогноз.

Некоторые функции IntelliCode по-прежнему находятся в предварительной версии, то есть нет гарантии будущей поддержки. Предварительные версии функций по умолчанию отключены. Чтобы включить или отключить предварительные версии функций IntelliCode, выберите Сервис>Параметры>IntelliCode. В разделе Функции предварительной версии выберите Включить, Отключить или По умолчанию, чтобы настроить поведение отдельных функций.

Установка IntelliCode для Visual Studio

  1. Скачайте Visual Studio версии 16.4 или более поздней версии.
  2. Установите поддерживаемую рабочую нагрузку, например «Разработка классических приложений .NET». Visual Studio IntelliCode устанавливается по умолчанию.

Чтобы отключить рекомендации IntelliSense, отключите расширение, выбрав «Расширения>управления расширениями» в меню, найдите и выберите расширение IntelliCode, а затем нажмите кнопку «Отключить».

Поддерживаемые рабочие нагрузки языков &

Поддерживаемые языки для завершения IntelliSense с поддержкой ИИ:

  • C#
  • XAML
  • C++
  • JavaScript и TypeScript, для которых требуется TypeScript 3.4.2 или более поздней версии
  • Visual Basic

IntelliCode входит в Visual Studio 2019 версии 16.4 в составе любой из следующих рабочих нагрузок:

  • Разработка Azure.
  • «Разработка классических приложений .NET»;
  • Разработка мобильных приложений на .NET
  • Разработка игр с помощью Unity
  • Кроссплатформенная разработка .NET Core.
  • ASP.NET и разработка веб-приложений
  • Разработка расширений Visual Studio
  • «Разработка приложений для универсальной платформы Windows».
  • Разработка для Office и SharePoint
  • «Разработка классических приложений на C++»;
  • Разработка игр на языке C++
  • Разработка мобильных приложений на языке C++
  • Разработка для Linux на C++

Завершения для команд

Предыдущие версии IntelliCode предоставили способ обучения модели в коде, предоставляя отсортированные завершения методов для платформ API, библиотек и других пользовательских проектов. Эта функция заменена моделью глубокого обучения, которая работает на компьютере и доступна для пользователей C#. См. статью об обновлении моделей завершения пользовательских команд IntelliCode до глубокого обучения. IntelliCode предоставляется бесплатно для всех пользователей Visual Studio.

Если вы являетесь пользователем C++, вы можете подписаться на GitHub Copilot для разработки кода с поддержкой ИИ. GitHub Copilot и Visual Studio IntelliSense совместно работают над улучшением завершения кода; См . список IntelliSense Visual Studio теперь может управлять завершением кода GitHub Copilot. Для GitHub Copilot требуется подписка, но ее можно оценить с помощью бесплатной пробной версии.

Устранение ошибок IntelliCode в Visual Studio

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

Если отключение расширений, переопределяющих пользовательский интерфейс IntelliSense, не решает проблему, сообщите о ней с помощью функции отчета Visual Studio и упоминание IntelliCode в отчете.

Телеметрия

IntelliCode собирает некоторые обезличенные данные об использовании и ошибках в целях улучшения продукта. Никакой пользовательский код не отправляется в корпорацию Майкрософт, но мы собираем сведения об использовании результатов IntelliCode. Чтобы определить предложения для базовой модели, которые основываются на типах и членах с открытым исходным кодом или .NET, мы учитываем, выбрали ли вы предложение IntelliCode, и регистрируем имя предложения. Корпорация Майкрософт использует эти данные для мониторинга качества базовой модели. Для пользовательских моделей мы фиксируем выбор предложения IntelliCode, но не регистрируем имена определяемых пользователем типов или методов.

Чтобы отключить сбор данных для IntelliCode, откажитесь от участия в программе улучшения Visual Studio. В строке меню выберите Справка>Обратная связь>Параметры. В диалоговом окне Программа улучшения Visual Studio выберите Нет, я не хочу участвовать и затем нажмите ОК.

См. также

Помощь искусственного интеллекта при написании кода

Автозавершения IntelliCode прогнозируют следующий блок кода на основе текущего кода до сих пор и представляют его как серый текстовый встроенный прогноз. Это похоже на автоматическое заполнение текста при вводе сообщений электронной почты, но только для кода.

Эта функция поддерживает C# в Visual Studio 2022.

Screenshot of Whole Line Completion by IntelliCode in Visual Studio.

Как это работает

IntelliCode использует модель крупномасштабного преобразователя, обученную на порядка полумиллиона общедоступных репозиториев с открытым исходным кодом из GitHub. Эта модель делает прогнозы о том, что вы вводите далее на основе богатых знаний о том, что вы закодировали до сих пор, включая:

  • Имена и позиции переменных
  • Библиотеки, которые вы используете
  • Функции в коде поблизости
  • Список IntelliSense

Модель выполняется на локальном компьютере, что позволяет использовать функцию в автономных и воздушных средах. Эта функция поддерживает C#.

Два режима

IntelliCode предоставляет варианты завершения двумя способами — при вводе текста пользователем и при выборе элемента в списке IntelliSense.

Режим 1: автозаполнения Кто строк при вводе

При вводе пользователя отображаются автозавершения всей строки, которые можно принять с помощью tab. Чтобы закрыть прогноз, можно использовать Esc ключи или Delete ключи.

Screenshot displaying Tab to accept whole-line autocompletion.

Режим 2. автоматическое заполнение Кто строки при выборе элемента IntelliSense

Когда у пользователя имеется элемент из списка IntelliSense, для предоставления прогнозов IntelliCode использует то, что ввел пользователь, а также то, что пользователь выбрал в качестве контекста. В этом случае вы увидите «Вкладка табуляции для принятия» прогноза. Первая вкладка принимает выбранный элемент из списка IntelliSense, а вторая вкладка принимает завершение всей строки. Чтобы отклонить прогноз, можно использовать клавиши Esc или Delete .

Screenshot displaying Tab Tab to accept selected completion item and whole line completion.

Принятие или закрытие автозавершения всей строки

По умолчанию Tab ключ используется для принятия автозаполнения всей строки. Чтобы изменить клавишу принятия по умолчанию, выберите «Сервис» -> «Параметры»-> «IntelliCode» -> «Завершения для полных строк кода». Включите параметр Apply completions for whole lines on right arrow .

Screenshot of Settings menu to change setting to make right arrow as accept character.

Это изменяет ключ приема с Tab стрелки вправо ->

Screenshot of Settings menu to change right arrow to accept whole-line autocompletion.

Чтобы закрыть автозавершение всей строки, ESC можно использовать ключи или Delete ключи.

Конфиденциальность

Управление автозаполнениями всей строки

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

Screenshot of setting for turning IntelliCode whole-Line autocompletions on or off.

Первый параметр Show completions for lines of code позволяет включить или отключить автозаполнения всей строки.

Второй параметр, Wait for pauses in typing before showing line completions если включен, выполняет автозаполнения всей строки только в том случае, если пользователь приостановил ввод. Этот параметр может потребоваться, если в режиме по умолчанию отображаются автозавершения всей строки.

Третий параметр можно включить или отключить в зависимости от того, Show completions on new lines нужно ли отображать автозаполнения всей строки при вводе новой строки, то есть путем нажатия Return клавиши или Enter .

Предоставление отзыва

Щелкните значок отзыва в правом верхнем углу Visual Studio, чтобы отправить отзыв. При необходимости в отзыв можно включить файлы журнала IntelliCode, чтобы предоставить нам дополнительный контекст. Обязательно просмотрите содержимое файлов журнала и устраните все возможные проблемы конфиденциальности. Эти данные, если они предоставлены нам, не будут использоваться ни для каких целей, кроме предоставления вам помощи. Журналы находятся в папке %LOCALAPPDATA%\Temp\VSFeedbackIntelliCodeLogs

Screenshot of submitting feedback for IntelliCode.

Второй параметр, Wait for pauses in typing before showing line completions если включен, выполняет завершение всей строки только в том случае, если пользователь приостановил ввод. Пользователь может предпочесть этот выбор, если они находят все завершения строки, отвлекающие в режиме по умолчанию.

Третий параметр может быть включен или отключен в зависимости от того, Show completions on new lines хочет ли пользователь видеть целые завершения строки, когда они ввели новую строку, например нажатием или Enter нажатием Return .

Помощь СИ при редактировании кода

Предложения IntelliCode полезны при внесении аналогичных изменений в несколько мест в коде. Технология локально отслеживает изменения и определяет повторяющееся действие. Затем она предлагает применить те же изменения в других местах, где они могут потребоваться. Например, если вы пропустили расположения для выполнения рефакторинга, предложения IntelliCode помогают найти эти расположения и исправить их.

IntelliCode учитывает семантическую структуру кода. Эта структура используется для обнаружения ситуаций, когда можно применить изменения, даже если имена переменных различаются.

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

Screenshot showing suggestions showing how repeated edits lead to finding suggestions.

Предложения будут показаны в окне Быстрые действия редактора Visual Studio. В меню «Быстрые действия» для предложений IntelliCode доступны команды Применить предложение и Игнорировать такие предложения. Чтобы использовать предлагаемое изменение, выберите Применить предложение.

Screenshot showing IntelliCode suggestions lightbulb.

В visual Studio 2019 16.9 и более поздних выпусках также отображаются предложения по мере ввода в списке завершения:

Так как он узнает о повторяющихся изменениях в сеансе, предложения IntelliCode иногда делают предложения, которые не соответствуют вашему намерению. Чтобы отказаться от предлагаемого изменения, просто выберите Игнорировать такие предложения. IntelliCode не будет предлагать этот шаблон снова, если вы не создадите его в последующих изменениях.

Предложения IntelliCode — это область сеанса. Они не отображаются после закрытия и повторного открытия Visual Studio

Чтобы просмотреть список всех предлагаемых изменений, выберите Вид>Другие окна>Предложения IntelliCode.

Дополнительные предложения доступны лампочки

Если вы принимаете предложение списка завершения, если есть другие расположения, вы можете применить то же изменение, вы увидите лампочку с действием, которое показывает список найденных предложений. Откроется окно предложений IntelliCode, и вы сможете найти предложения и выполнить соответствующие действия.

Screenshot showing IntelliCode suggestions discovery.

Отключение предложений IntelliCode

Предложения по умолчанию включены для Visual Studio версии 16.7 и более поздних версий.

Чтобы отключить их, перейдите на вкладку Сервис>Параметры, Общие параметры IntelliCode и выберите для параметра Предложения C# значение Выключено:

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

Ваш адрес email не будет опубликован. Обязательные поля помечены *