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


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

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

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

Снимок экрана, показывающий завершение всей строки с помощью IntelliCode в Visual Studio.

Принцип работы

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

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

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

Два режима

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

Режим 1. Автозаполнения всей строки при вводе

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

Снимок экрана, показывающий использование клавиши Tab для принятия автозавершения всей строки.

Режим 2: Автозаполнение всей строки, когда выбран элемент IntelliSense

Если пользователь имеет элемент из выбранного списка IntelliSense, IntelliCode использует то, что пользователь ввел + то, что пользователь выбрал в качестве контекста для предоставления прогнозов. В этом случае вы видите предложение "Tab Tab для принятия". Первая вкладка подтверждает выбранный элемент из списка IntelliSense, а вторая вкладка подтверждает дополнение всей строки. Чтобы закрыть прогноз, можно использовать ключи Esc или Delete.

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

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

По умолчанию ключ Tab используется для принятия автозаполнения всей строки. Чтобы изменить ключ приема по умолчанию на стрелку вправо, перейдите к разделу Tools>Options>IntelliCode —>Advanced.

Включите параметр с именем Apply completions for whole lines on right arrow.

Снимок экрана меню

Включите параметр Apply whole line completions on right arrow.

Снимок экрана меню настроек, в котором стрелка вправо используется для принятия автозавершения всей строки.

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

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

См. политику конфиденциальности

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

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

Снимок экрана настроек для включения и отключения автозаполнения IntelliCode на уровне всей строки.

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

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

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

В toolsOptions, IntelliCode, General, параметр Show inline completions позволяет включить или отключить автозаполнения всей строки.

На вкладке Advanced есть дополнительные параметры.

Скриншот настроек для включения и выключения автозавершения целых строк в IntelliCode.

Первый параметр, Apply whole line completions on right arrow был рассмотрен ранее в этой статье.

Второй параметр, Disable suggestions while debugging позволяет свести к минимуму отвлекающие факторы при отладке.

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

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

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

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

снимок экрана отправки отзывов для IntelliCode.

Дальнейшие действия

См. конфиденциальность