Изучение функций завершения кода GitHub Copilot
GitHub Copilot предоставляет предложения по стилю автозаполнения при вводе кода. Помимо стандартных предложений автозаполнения, GitHub Copilot также предоставляет предложения по следующему редактированию (NES), которые прогнозируют расположение следующего изменения, которое вы, скорее всего, выполните, и предлагают его завершение.
При выполнении следующих действий вы получаете предложения в стиле автозаполнения:
- Введите частичную или полную строку кода в редакторе.
- Введите частичный или полный комментарий кода в редакторе.
- Введите пустую строку кода в редакторе.
Следующие предложения по редактированию появляются автоматически, когда вы изменяете код. Они прогнозируют, какие изменения вы, скорее всего, сделаете на основе ваших недавних изменений и отображаются с особым индикатором, который показывает предлагаемое место для редактирования.
Сформируйте предложение автодополнения
GitHub Copilot ускоряет разработку приложений, предлагая варианты завершения кода на основе вашего текущего кода.
Например, предположим, что вы хотите создать метод C# с именем addInt, который возвращает сумму двух целых чисел. Если вы начинаете вводить подпись метода, GitHub Copilot предлагает код, который он считает, что вы хотите создать.
Предлагаемое автоматическое заполнение отображается без выделения цветного синтаксиса. Это помогает отличить автозавершение от существующего кода. Рекомендуемый код можно принять, нажав клавишу TAB.
Чтобы закрыть предложение, нажмите клавишу ESC.
Пример addInt несколько упрощен, поэтому вы можете задуматься о том, как GitHub Copilot справляется с чем-то более сложным.
Предположим, вы хотите создать метод, который принимает список чисел и возвращает сумму простых чисел, содержащихся в списке. Можно назвать метод addPrimeNumbersInNumericList. Как только вы начинаете вводить сигнатуру метода, GitHub Copilot генерирует предложение для вас. Рассмотрим пример.
Прежде чем принимать их, важно ознакомиться с предложениями. Эта автоматическая компиляция выглядит хорошо, чтобы можно было принять предложение, нажав клавишу TAB.
Давайте продолжим сценарий немного дальше.
После объединения предложения в код обратите внимание, что метод isPrime подчеркнут красным цветом. Это связано с тем, что метод isPrime еще не существует в коде.
GitHub Copilot обучено следовать рекомендациям, которые включают разбиение сложных проблем в небольшие, более управляемые части. В этом случае GitHub Copilot предлагает создать отдельный метод isPrime, чтобы проверить, является ли число простым.
GitHub Copilot готов предложить фрагмент кода для метода isPrime. При вводе пустой строки под методом addPrimeNumbersInNumericList GitHub Copilot предлагает метод isPrime, который можно использовать.
Предложения автозаполнения ускоряют процесс разработки, предоставляя фрагменты кода. Но что, если предложения не совсем соответствуют вашим потребностям? GitHub Copilot предоставляет интерфейс для управления предложениями автозаполнения.
Управление подсказками автозаполнения
Когда GitHub Copilot предлагает автозавершение, он также предоставляет интерфейс для управления предложениями. Вы можете принять предложение, просмотреть другие предложения или закрыть предложения.
При наведении указателя мыши на предлагаемое автозаполнение вы выбираете из нескольких вариантов управления предложениями.
Интерфейс по умолчанию для управления предложениями включает следующие параметры:
- Примите предложение (в полном объеме), нажав кнопку "Принять". Вы также можете принять предложение, нажав клавишу TAB.
- Частично примите предложение, выбрав Accept Word. Вы также можете частично принять предложение, нажав
Ctrl+→клавиши (стрелка вправо). - Просмотрите альтернативные предложения, выбрав
>или<. Кроме того, можно просмотреть альтернативные варианты, нажав клавишиAlt+]илиAlt+[.
Выбор параметра Accept Word принимает следующее слово в предложении. Это полезно, если вы хотите принять часть предложения, а затем продолжить ввод собственного кода. Например, можно принять первое слово предложения метода isPrime.
Продолжайте выбирать Accept Word, пока не примите столько предложений, сколько хотите.
Щелкните значок с многоточием (...) справа от кнопки "Принять слово", чтобы получить дополнительные параметры, такие как Always Show Toolbar и Open Completions Panel.
При выборе параметра "Всегда показывать панель инструментов" панель инструментов остается видимой при использовании сочетаний клавиш для управления предложениями автозавершения. Если выбрать параметр Открыть панель завершений, откроется панель завершений GitHub Copilot. Просмотр нескольких предложений с помощью панели завершения GitHub Copilot рассматривается в конце этого урока.
Замечание
Чтобы принять всю строку предложения, необходимо настроить настраиваемое сочетание клавиш для editor.action.inlineSuggest.acceptNextLine команды. Этот параметр по умолчанию недоступен на панели инструментов.
Создание предложений кода из комментариев
Кроме предложения автозавершения на основе кода, GitHub Copilot может использовать комментарии кода для предложения фрагментов кода. Используйте фразы естественного языка, чтобы описать код, который требуется создать. Это позволяет GitHub Copilot предлагать предложения автозаполнения, соответствующие конкретным требованиям. Например, можно указать тип алгоритма, который вы хотите использовать в вычислении, или какие методы и свойства, которые необходимо добавить в класс.
Давайте вернемся к примеру простых чисел. На этом этапе у вас есть следующий код:
Методы addPrimeNumbersInNumericList и isPrime кажутся завершёнными. Однако вам по-прежнему нужен список чисел, которые можно использовать в качестве аргумента при вызове метода addPrimeNumbersInNumericList. Вы можете написать комментарий, описывающий список нужных чисел. Например, список из 100 случайных чисел, которые варьируются от 1 до 1000.
При вводе комментария GitHub Copilot предлагает автозавершение, которое завершает комментарий. GitHub Copilot использует окружающий код для улучшения своих предложений. Например, если вы начнете вводить комментарий // create, GitHub Copilot использует окружающий код для прогнозирования того, что нужно создать. В этом случае GitHub Copilot использует метод addPrimeNumbersInNumericList, чтобы предсказать ваше намерение создать a list of numbers.
Продолжая писать комментарий, GitHub Copilot обновляет свое предложение автозаполнения. Когда вы будете готовы принять предложение, нажмите кнопку "Принять " или нажмите клавишу TAB.
При создании новой строки кода после комментария GitHub Copilot начинает создавать фрагмент кода на основе комментария и существующего кода.
Примите все предложения по мере их появления.
Если GitHub Copilot не завершил работу, создается другое предложение для принятия.
Если вы вводите новую строку кода после завершения фрагмента кода, GitHub Copilot создает другие предложения автозаполнения на основе требований проекта кода. В этом случае GitHub Copilot предлагает кодовую строку, которая вызывает метод addPrimeNumbersInNumericList, передавая список с именем numbers.
Просмотр нескольких предложений с помощью панели завершения GitHub Copilot
Если вы не удовлетворены первоначальными предложениями автозаполнения, GitHub Copilot может открыть новую вкладку в редакторе с дополнительными параметрами. Вы можете просмотреть более широкий список предложений, чтобы найти лучшее соответствие, а затем выбрать его.
Чтобы продемонстрировать эту функцию, давайте вернемся к более ранней стадии в примере простых чисел.
Предположим, вам по-прежнему нужно создать метод isPrime. Когда вы вводите пустую строку ниже метода addPrimeNumbersInNumericList, GitHub Copilot предлагает метод isPrime. Это тот же процесс, который использовался ранее. Однако предположим, что вы не удовлетворены предложениями, которые предлагает GitHub Copilot, и хотели бы увидеть больше вариантов.
Чтобы открыть панель завершения GitHub Copilot и просмотреть другие предложения, нажмите клавиши Ctrl + Enter. Вы также можете открыть меню "Дополнительные действия" и выбрать Открыть панель завершения.
Панель завершения GitHub Copilot отображает до 10 других предложений. Просмотрите предложения, чтобы найти тот, который лучше всего подходит для ваших потребностей.
Чтобы принять предложение, выберите метку Принять предложение НОМЕР под предложением. Например, выберите метку "Принять предложение 1" под первым предложением.
Чтобы отклонить все предложения, закройте вкладку.
Сводка
Предложения автозаполнения и предложения для следующего редактирования помогают писать код более эффективно и точно. GitHub Copilot предоставляет предложения автозавершения при вводе кода, а также предсказания для следующей вероятной правки. Вы можете создать предложение автозаполнения, введя частичную или полную строку кода, частичный или полный комментарий кода или пустую строку кода. Вы можете принять предложение, нажав клавишу TAB, или закрыть предложения, нажав клавишу ESC. Вы можете управлять предложениями с помощью панели инструментов, которая отображается при наведении указателя мыши на предложение. Панель инструментов позволяет просматривать альтернативные предложения, принимать предложения, принимать одно слово из предложения или открывать панель предложений GitHub Copilot для просмотра дополнительных предложений.