Examinați funcțiile de completare a codului de la GitHub Copilot
GitHub Copilot oferă două tipuri de sugestii inline. Sugestiile de text fantomă apar ca text estompat la poziția curentă a cursorului în timp ce tastezi. Sugestiile de editare următoare (NES) prezic atât locația, cât și conținutul următoarei editări de cod pe baza modificărilor recente făcute.
Primiți sugestii de text fantomă atunci când efectuați următoarele acțiuni:
- Introduceți o linie de cod parțială sau completă în editor.
- Introduceți un comentariu de cod parțial sau complet în editor.
- Introduceți o linie de cod necompletată în editor.
Următoarele sugestii de editare apar automat pe măsură ce editezi codul. Ele prezic ce modificare vei face în continuare pe baza editărilor recente și sunt afișate cu un indicator special care arată locația sugerată de editare.
Scenarii comune de sugestii pentru următoarea editare
Următoarele sugestii de editare sunt deosebit de utile în trei scenarii de programare:
-
Detectarea greșelilor: NES detectează probleme precum greșeli de tastare (
conts x = 5→const x = 5), expresii ternare inversate și operatori de comparație incorecti, apoi sugerează soluția corectă. -
Schimbări de intenție în cascadă: Când redenumești un tip sau o variabilă, NES sugerează propagarea acelei schimbări prin tot codul dependent. De exemplu, redenumirea unei clase din
PointînPoint3Ddeclanșează sugestii de a adăuga ozcoordonată oriunde are nevoie codul. - Refactorizare: După ce redenumești o variabilă o dată, NES sugerează să actualizezi fiecare a doua apariție. După lipirea codului, NES sugerează adaptarea acestuia pentru a se potrivi stilului codului înconjurător.
Generează o sugestie de text fantomă
GitHub Copilot accelerează dezvoltarea aplicațiilor sugerând completări de cod pe baza codului pe care îl scrii.
De exemplu, să presupunem că vrei să creezi o metodă C# numită addInt care returnează suma a două numere întregi. Dacă începi să tastezi semnătura metodei, GitHub Copilot îți sugerează codul pe care creează că vrei să-l creezi.
Sugestia textului fantomă este afișată fără evidențiere de sintaxă colorată. Acest lucru ajută la diferențierea sugestiei de codul tău existent. Puteți accepta codul sugerat apăsând tasta Tab.
Puteți apăsa tasta Esc pentru a respinge o sugestie.
Exemplul addInt este puțin simplist, așa că probabil te întrebi cum se descurcă GitHub Copilot ceva mai complex.
Să presupunem că doriți să creați o metodă care acceptă o listă de numere și returnează suma numerelor prime conținute în listă. Ai putea numi metoda addPrimeNumbersInNumericList. Când începi să tastezi semnătura metodei, GitHub Copilot îți generează o sugestie. De exemplu:
Este important să revizuiți sugestiile înainte de a le accepta. Această sugestie de text fantomă arată bine, așa că ai putea accepta sugestia apăsând tasta Tab.
Să continuăm scenariul un pic mai departe.
Odată ce sugestia este integrată în codul tău, observi că metoda isPrime este subliniată cu roșu. Acest lucru se datorează faptului că metoda isPrime nu există încă în cod.
GitHub Copilot este instruit să urmeze cele mai bune practici, care includ descompunerea problemelor complexe în părți mai mici și mai ușor de gestionat. În acest caz, GitHub Copilot sugerează să creezi o metodă separată isPrime pentru a verifica dacă un număr este prim.
GitHub Copilot este gata să sugereze un fragment de cod pentru metoda isPrime. Când introduci o linie goală sub metoda addPrimeNumbersInNumericList, GitHub Copilot sugerează o metodă isPrime pe care o poți folosi.
Sugestiile de ghost text accelerează procesul de dezvoltare prin furnizarea de fragmente de cod. Dar dacă sugestiile nu sunt tocmai ceea ce vă trebuie? GitHub Copilot oferă o interfață pentru gestionarea sugestiilor de text fantomă.
Sugestii pentru gestionarea textului fantomă
Când GitHub Copilot sugerează o completare a textului fantomă, oferă și o interfață pentru gestionarea sugestiilor. Puteți să acceptați o sugestie, să revizuiți alte sugestii sau să respingeți sugestiile.
Atunci când treceți cu indicatorul mouse-ului peste o completare automată sugerată, vi se prezintă mai multe opțiuni pentru gestionarea sugestiilor.
Interfața implicită pentru gestionarea sugestiilor include următoarele opțiuni:
- Acceptă sugestia (în întregime) selectând Accept. De asemenea, puteți accepta sugestia apăsând tasta Tab.
- Acceptă parțial sugestia selectând Acceptă Word. Poți accepta parțial o sugestie apăsând tastele
Ctrl+→(săgeata din dreapta). - Vizualizați sugestii alternative selectând
>sau<. Poți vedea și sugestiile alternative apăsând tasteleAlt+]or.Alt+[
Selectarea opțiunii Acceptă Word acceptă următoarea word a unei sugestii. Acest lucru este util atunci când doriți să acceptați o parte din sugestie, apoi să continuați să tastați propriul cod. De exemplu, poți accepta primul cuvânt din isPrime sugestia metodei.
Continuă să selectezi Acceptă Word până când ai acceptat cât de mult din sugestie vrei.
Selectarea pictogramei de elipsă (...) din dreapta butonului Accept Word oferă opțiuni suplimentare, cum ar fi Accept Line și Afișează întotdeauna Bara de Instrumente.
Selectarea opțiunii Afișează întotdeauna bara de instrumente asigură că bara rămâne vizibilă atunci când se folosesc scurtături de tastatură pentru a gestiona sugestiile de text fantomă. Selectarea opțiunii Open Completions se deschide GitHub Copilot Completions Panel.
Notă
Pentru a accepta o întreagă linie de sugestie, trebuie să configurezi o scurtătură personalizată pentru comandă.editor.action.inlineSuggest.acceptNextLine Această opțiune nu este disponibilă implicit în bara de instrumente.
Generați sugestii de cod din comentarii
Pe lângă sugestia unei completări automate bazate pe cod, GitHub Copilot poate folosi comentarii de cod pentru a sugera fragmente de cod. Utilizați expresii în limbaj natural pentru a descrie codul pe care doriți să-l creați. Acest lucru permite GitHub Copilot să propună sugestii de autocompletare care să îndeplinească cerințe specifice. De exemplu, puteți specifica tipul de algoritm pe care doriți să-l utilizați într-un calcul sau metodele și proprietățile pe care doriți să le adăugați la o clasă.
Să revenim la exemplul cu numărul principal. În acest moment, aveți următorul cod:
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;
}
Metodele addPrimeNumbersInNumericList și isPrime par a fi complete. Totuși, ai nevoie în continuare de o listă de numere care pot fi folosite ca argument atunci când apelezi metoda addPrimeNumbersInNumericList . Puteți scrie un comentariu care descrie lista de numere dorite. De exemplu, o listă de 100 de numere aleatoare care variază între 1 și 1000.
Când începi să introduci comentariul, GitHub Copilot sugerează o completare automată care finalizează comentariul pentru tine. GitHub Copilot folosește codul din jur pentru a-și îmbunătăți sugestiile. De exemplu, dacă începi să introduci comentariul // create, GitHub Copilot folosește codul din jur pentru a prezice ce vrei să creezi. În acest caz, GitHub Copilot folosește metoda addPrimeNumbersInNumericList pentru a prezice că vrei să creezi a list of numbers.
Pe măsură ce continui să scrii comentariul, GitHub Copilot își actualizează sugestia de completare automată. Când ești gata să accepți sugestia, selectează Accept sau apasă tasta Tab.
Când creezi o linie nouă de cod după comentariu, GitHub Copilot începe să genereze un fragment de cod bazat pe comentariu și pe codul tău existent.
Acceptați fiecare sugestie pe măsură ce apar. Dacă GitHub Copilot nu este gata, generează o altă sugestie pe care să o accepți.
Dacă introduci o nouă linie de cod după ce fragmentul de cod este complet, GitHub Copilot generează o altă sugestie de autocompletare bazate pe cerințele proiectului tău de cod.
Rezumat
Sugestiile de text fantomă și următoarele editări te ajută să scrii cod mai eficient și mai precis. Sugestiile de text fantomă apar ca text estompat în poziția cursorului pe măsură ce tastezi; Următoarele sugestii de editare: preziceți locația și conținutul următoarei editări pe baza modificărilor recente. Poți genera o sugestie de text fantomă introducând o linie parțială sau completă de cod, un comentariu parțial sau complet sau o linie de cod goală. Poți accepta o sugestie apăsând tasta Tab sau să o respingi apăsând tasta Esc. Puteți gestiona sugestiile utilizând bara de instrumente care apare atunci când treceți cu indicatorul peste o sugestie. Bara de instrumente îți permite să revizuiești sugestii alternative, să accepți o sugestie, să accepți un cuvânt dintr-o sugestie sau să deschizi panoul de finalizări GitHub Copilot pentru a vedea mai multe sugestii.