Ознайомтеся з функціями завершення коду GitHub Copilot

Завершено

GitHub Copilot пропонує два типи інлайн-рекомендацій. Пропозиції примарного тексту з'являються у вигляді затемненого тексту у вашому поточному місці курсора під час набору. Наступні редагувальні пропозиції (NES) передбачають як місцезнаходження, так і зміст вашого наступного редагування коду на основі нещодавніх змін, які ви внесли.

Ви отримуєте пропозиції щодо примарного тексту, коли виконуєте наступні дії:

  • Введіть частковий або повний рядок коду в редакторі.
  • Введіть часткову або повну примітку коду в редакторі.
  • Введіть пустий рядок коду в редакторі.

Пропозиції щодо наступного редагування з'являються автоматично під час редагування коду. Вони прогнозують, які зміни ви, ймовірно, внесете наступного разу, на основі ваших останніх правок, і відображаються спеціальним індикатором із рекомендованим місцем редагування.

Поширені сценарії наступних редагувань

Наступні редагування особливо корисні у трьох сценаріях програмування:

  • Виявлення помилок: NES виявляє такі проблеми, як опечатки (conts x = 5const x = 5), інверсовані тернарні вирази та неправильні оператори порівняння, а потім пропонує правильне виправлення.
  • Каскадні зміни наміру: Коли ви перейменовуєте тип або змінну, NES пропонує поширювати цю зміну через весь залежний код. Наприклад, перейменування класу з Point в Point3D запускає пропозиції додати z координату там, де це потрібно коду.
  • Рефакторинг: Після одноразової перейменування змінної NES пропонує оновлювати кожну іншу появу. Після вставки коду NES пропонує адаптувати його під стиль навколишнього коду.

Згенеруйте пропозицію у вигляді «примарного тексту»

GitHub Copilot прискорює розробку додатків, пропонуючи завершувати код на основі коду, який ви пишете.

Наприклад, припустимо, ви хочете створити метод C#, який addInt повертає суму двох цілих чисел. Якщо почати вводити підпис методу, GitHub Copilot пропонує код, який, на його думку, ви хочете створити.

Скріншот редактора Visual Studio Code який показує пропозицію примарного тексту для тіла методу addInt.

Пропозиція «примарного тексту» відображається без підсвічування кольорового синтаксису. Це допомагає відрізнити пропозицію від вашого існуючого коду. Ви можете прийняти запропонований код, натиснувши клавішу Tab.

Щоб відхилити пропозицію, натисніть клавішу Esc.

Приклад addInt трохи спрощений, тож ви, можливо, цікавитесь, як GitHub Copilot справляється з чимось складнішим.

Припустімо, що потрібно створити метод, який приймає список чисел і повертає суму перших чисел, які містяться в списку. Ви можете назвати метод addPrimeNumbersInNumericList. Коли ви починаєте вводити підпис методу, GitHub Copilot генерує вам пропозицію. Наприклад,

Скріншот редактора Visual Studio Code який показує пропозицію примарного тексту для тіла методу addPrimeNumbersInNumericList.

Перш ніж приймати їх, важливо переглянути пропозиції. Ця пропозиція з примарним текстом виглядає добре, тож ви можете прийняти її, натиснувши клавішу Tab.

Давайте продовжимо сценарій трохи далі.

Коли пропозиція об'єднана з вашим кодом, ви помічаєте, що isPrime метод підкреслено червоним. Це тому, що цей isPrime метод ще не існує в коді.

GitHub Copilot навчений дотримуватися найкращих практик, зокрема розбивати складні проблеми на менші, більш керовані частини. У цьому випадку GitHub Copilot пропонує створити окремий метод isPrime для перевірки, чи є число простим.

GitHub Copilot готовий, запропонуйте уривок коду для методу isPrime. Коли ви вводите порожній рядок під методом addPrimeNumbersInNumericList, GitHub Copilot пропонує метод isPrime, який можна використовувати.

скріншот редактора, де Visual Studio Code показує пропозицію примарного тексту для методу isPrime helper, що з'являється після addPrimeNumbersInNumericList method.

Пропозиції примарного тексту прискорюють процес розробки, надаючи фрагменти коду. Але що робити, якщо пропозиції не зовсім потрібні? GitHub Copilot надає інтерфейс для керування пропозиціями щодо примарного тексту.

Керування пропозиціями щодо «примарних» текстів

Коли GitHub Copilot пропонує завершення тексту з привидом, він також надає інтерфейс для керування пропозиціями. Ви можете прийняти пропозицію, переглянути інші пропозиції або відхилити пропозиції.

Якщо навести вказівник миші на запропоноване автозаповнення, вам буде запропоновано кілька варіантів керування пропозиціями.

скріншот редактора, де Visual Studio Code показує панель керування пропозиціями примарного тексту з Прийняти, Прийняти Word, навігацією та додатковими опціями.

Інтерфейс за замовчуванням для керування пропозиціями включає такі параметри:

  • Прийміть пропозицію (повністю), вибравши Прийняти. Ви також можете прийняти пропозицію, натиснувши клавішу Tab.
  • Частково прийміть пропозицію, обравши Прийняти Word. Ви також можете частково прийняти пропозицію, натиснувши Ctrl + клавіші (стрілка праворуч).
  • Перегляньте альтернативні пропозиції, вибравши > або <. Альтернативні варіанти також можна переглянути, натиснувши клавіші ORAlt + ].Alt + [

Вибір варіанту Прийняти Word приймає наступний word у пропозиції. Це зручно, якщо потрібно прийняти частину пропозиції, а потім продовжити введення власного коду. Наприклад, ви можете прийняти перше слово пропозиції isPrime методу.

Продовжуйте обирати Прийняти Word доки не приймете стільки пропозицій, скільки забажаєте.

Вибір іконки елітису (...) праворуч від кнопки Прийняти Word відкриває додаткові опції, такі як Прийняти рядок та Завжди показувати панель інструментів.

Вибір опції «Завжди показувати панель інструментів » гарантує, що панель інструментів залишається видимою при використанні клавішних ярликів для керування пропозиціями «примарного тексту». Вибравши опцію Open Completions Panel відкривається панель GitHub Copilot Completions.

Нотатка

Щоб прийняти цілий рядок пропозиції, потрібно налаштувати власний ярлик клавіатури для цієї editor.action.inlineSuggest.acceptNextLine команди. Ця опція за замовчуванням недоступна на панелі інструментів.

Створення пропозицій коду з приміток

Окрім пропозиції автозаповнення на основі коду, GitHub Copilot може використовувати коментарі до коду для пропозиції фрагментів коду. Використовуйте вирази природної мови, щоб описати код, який потрібно створити. Це дозволяє GitHub Copilot пропонувати пропозиції автозаповнення, які відповідають конкретним вимогам. Наприклад, можна вказати тип алгоритму, який потрібно використовувати в обчисленні, або методи та властивості, які потрібно додати до класу.

Давайте повернемося до зразка номера. На цьому етапі у вас є такий код:

int addPrimeNumbersInNumericList(List<int> numbers)
{
    int sum = 0;
    foreach (int number in numbers)
    {
        if (IsPrime(number))
        {
            sum += number;
        }
    }
    return sum;
}

private bool IsPrime(int number)
{
    if (number <= 1)
    {
        return false;
    }
    for (int i = 2; i <= Math.Sqrt(number); i++)
    {
        if (number % i == 0) return false;
    }
    return true;
}

addPrimeNumbersInNumericList isPrime Методи, здається, повні. Однак вам все одно потрібен список чисел, які можна використовувати як аргумент при виклику методу addPrimeNumbersInNumericList . Ви можете написати примітку, яка описує список потрібних чисел. Наприклад, список зі 100 випадкових чисел, які коливаються від 1 до 1000.

Коли ви починаєте вводити коментар, GitHub Copilot пропонує автозаповнення, яке завершує коментар за вас. GitHub Copilot використовує навколишній код для покращення своїх пропозицій. Наприклад, якщо ви почнете вводити коментар // create, GitHub Copilot використовує навколишній код, щоб передбачити, що ви хочете створити. У цьому випадку GitHub Copilot використовує метод addPrimeNumbersInNumericList, щоб передбачити, що ви хочете створити a list of numbers.

Скріншот редактора, де Visual Studio Code показує пропозицію тексту-привиду, завершуючи коментар для '// створення списку чисел.

Поки ви продовжуєте писати свій коментар, GitHub Copilot оновлює свою пропозицію щодо автозавершення. Коли будете готові прийняти пропозицію, виберіть Прийняти або натисніть клавішу Tab.

Коли ви створюєте новий рядок коду після коментаря, GitHub Copilot починає генерувати фрагмент коду на основі коментаря та вашого існуючого коду.

Скріншот редактора Visual Studio Code який показує пропозицію примарного тексту для першого рядка коду на основі коментаря вище.

Прийміть кожну пропозицію, коли вони з'являються. Якщо GitHub Copilot не завершено, це дає ще одну пропозицію, яку варто прийняти.

Якщо ви вводите новий рядок коду після завершення фрагмента коду, GitHub Copilot генерує ще одні пропозиції автозаповнення відповідно до вимог вашого проєкту коду.

Зведення

Пропозиції щодо примарного тексту та наступних редагувань допомагають писати код ефективніше та точніше. Пропозиції примарного тексту з'являються у вигляді приглушеного тексту на курсорі під час набору; Наступні пропозиції щодо редагування передбачають місце та зміст вашого наступного редагування на основі ваших останніх змін. Ви можете згенерувати пропозицію «примарного тексту», ввівши частковий або повний кодовий рядок, частковий або повний коментар до коду або порожній рядок коду. Ви можете прийняти пропозицію, натиснувши клавішу Tab, або відхилити її, натиснувши клавішу Esc. Ви можете керувати пропозиціями, використовуючи панель інструментів, яка відображається під час наведення вказівника миші на пропозицію. Панель інструментів дозволяє переглядати альтернативні пропозиції, приймати пропозицію, приймати одне слово пропозиції або відкривати панель завершень GitHub Copilot, щоб переглянути більше пропозицій.