Undersøg GitHub Copilot's kodefuldførelsesfunktioner
GitHub Copilot tilbyder to typer inline-forslag. Ghost-tekstforslag vises som dæmpet tekst på din nuværende markørplacering, mens du skriver. Næste redigeringsforslag (NES) forudsiger både placeringen og indholdet af din næste koderedigering baseret på de seneste ændringer, du har foretaget.
Du modtager forslag til spøgelsestekst, når du udfører følgende handlinger:
- Angiv en delvis eller komplet kodelinje i editoren.
- Angiv en delvis eller komplet kodekommentar i editoren.
- Angiv en tom kodelinje i editoren.
Næste redigeringsforslag dukker automatisk op, mens du redigerer koden. De forudsiger, hvilken ændring du sandsynligvis vil foretage næste gang baseret på dine seneste redigeringer, og vises med en særlig indikator, der viser det foreslåede redigeringssted.
Almindelige næste redigeringsforslagsscenarier
Næste redigeringsforslag er især nyttige i tre kodningsscenarier:
-
Opdagelse af fejl: NES opdager problemer som slåfejl (
conts x = 5→const x = 5), inverterede ternære udtryk og forkerte sammenligningsoperatorer, og foreslår derefter den korrekte løsning. -
Kaskaderende intentionsændringer: Når du omdøber en type eller variabel, foreslår NES, at denne ændring udbredes gennem al afhængig kode. For eksempel udløser omdøbning af en klasse fra
PointtilPoint3Dforslag om at tilføje enzkoordinat, hvor koden har brug for det. - Refaktorering: Efter du har omdøbt en variabel én gang, foreslår NES, at du opdaterer hver anden forekomst. Efter at have indsat koden foreslår NES at tilpasse den, så den matcher stilen på den omgivende kode.
Generer et forslag til spøgelsestekst
GitHub Copilot acceler app-udviklingen ved at foreslå kodefuldførelser baseret på den kode, du skriver.
For eksempel, antag at du vil oprette en C#-metode ved navn addInt som returnerer summen af to heltal. Hvis du begynder at skrive metodesignaturen, foreslår GitHub Copilot den kode, som den mener, du vil lave.
Forslaget til spøgelsestekst vises uden farvet syntaksmarkering. Det hjælper med at adskille forslaget fra din eksisterende kode. Du kan acceptere den foreslåede kode ved at trykke på tabulatortasten.
Du kan trykke på Esc for at afvise et forslag.
Eksemplet addInt er lidt simpelt, så du undrer dig måske over, hvordan GitHub Copilot klarer sig med noget mere komplekst.
Lad os antage, at du vil oprette en metode, der accepterer en liste over tal og returnerer summen af de primtal, der findes på listen. Du kunne navngive metoden addPrimeNumbersInNumericList. Når du begynder at skrive metodesignaturen, genererer GitHub Copilot et forslag til dig. Eksempler:
Det er vigtigt at gennemse forslag, før du accepterer dem. Dette spøgelsestekstforslag ser godt ud, så du kan acceptere forslaget ved at trykke på tabulatortasten.
Lad os fortsætte scenariet lidt længere.
Når forslaget er integreret i din kode, bemærker du, at isPrime metoden er understreget med rødt. Det skyldes, at isPrime metoden endnu ikke findes i koden.
GitHub Copilot er trænet til at følge best practices, som inkluderer at nedbryde komplekse problemer i mindre, mere håndterbare dele. I dette tilfælde foreslår GitHub Copilot, at du opretter en separat isPrime-metode til at tjekke, om et tal er primtal.
GitHub Copilot er klar, foreslår et kodeuddrag til isPrime-metoden. Når du indtaster en tom linje under addPrimeNumbersInNumericList-metoden, foreslår GitHub Copilot en isPrime-metode, som du kan bruge.
Ghost text-forslag fremskynder udviklingsprocessen ved at levere kodeudsnit. Men hvad nu, hvis forslagene ikke er helt, hvad du har brug for? GitHub Copilot tilbyder en grænseflade til håndtering af ghost-tekstforslag.
Håndter forslag til spøgelsestekster
Når GitHub Copilot foreslår en ghost text-fuldførelse, tilbyder den også en grænseflade til håndtering af forslagene. Du kan acceptere et forslag, gennemse andre forslag eller afvise forslagene.
Når du holder musemarkøren over en foreslået autofuldførelse, får du vist flere muligheder for at administrere forslagene.
Standardgrænsefladen til administration af forslag indeholder følgende indstillinger:
- Accepter forslaget (i sin helhed) ved at vælge Accepter. Du kan også acceptere forslaget ved at trykke på tabulatortasten.
- Accepter delvist forslaget ved at vælge Accept Word. Du kan også delvist acceptere et forslag ved at trykke
Ctrl+→på (højre pil) tasterne. - Se alternative forslag ved at vælge
>eller<. Du kan også se de alternative forslag ved at trykkeAlt+]på knappen/eller.Alt+[
Ved at vælge Accepter Word accepterer du næste word i et forslag. Dette er nyttigt, når du vil acceptere en del af forslaget og derefter fortsætte med at skrive din egen kode. For eksempel kan du acceptere det første ord i isPrime metodeforslaget.
Fortsæt med at vælge Accepter Word indtil du har accepteret så meget af forslaget, som du ønsker.
Hvis man vælger ellipseikonet (...), til højre for knappen Accept Word, gives der yderligere muligheder, såsom Accepter linje og Vis altid værktøjslinjen.
Ved at vælge indstillingen Altid Vis Værktøjslinjen sikres, at værktøjslinjen forbliver synlig, når man bruger tastaturgenveje til at håndtere spøgelsestekstforslag. Ved at vælge Open Completions Panel åbnes GitHub Copilot Completions-panelet.
Bemærkning
For at acceptere en hel linje af et forslag skal du konfigurere en brugerdefineret tastaturgenvej til kommandoen editor.action.inlineSuggest.acceptNextLine . Denne mulighed er ikke tilgængelig som standard i værktøjslinjen.
Generér kodeforslag fra kommentarer
Ud over at foreslå en autofuldførelse baseret på kode kan GitHub Copilot bruge kodekommentarer til at foreslå kodeuddrag. Brug udtryk på naturligt sprog til at beskrive den kode, du vil oprette. Dette gør det muligt for GitHub Copilot at foreslå autofuldførende forslag, der opfylder specifikke krav. Du kan f.eks. angive den type algoritme, du vil bruge i en beregning, eller hvilke metoder og egenskaber du vil føje til en klasse.
Lad os vende tilbage til eksemplet med primtal. På dette tidspunkt har du følgende kode:
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;
}
Og-metoderne addPrimeNumbersInNumericListisPrime ser ud til at være komplette. Du har dog stadig brug for en liste over tal, der kan bruges som argument, når du kalder metoden addPrimeNumbersInNumericList . Du kan skrive en kommentar, der beskriver den ønskede liste over tal. En liste over f.eks. 100 tilfældige tal fra 1 og 1000.
Når du begynder at skrive kommentaren, foreslår GitHub Copilot en autofuldførelse, der udfylder kommentaren for dig. GitHub Copilot bruger din omgivende kode til at forbedre sine forslag. For eksempel, hvis du begynder at indtaste kommentaren // create, bruger GitHub Copilot den omgivende kode til at forudsige, hvad du vil skabe. I dette tilfælde bruger GitHub Copilot metoden addPrimeNumbersInNumericList til at forudsige, at du vil oprette a list of numbers.
Mens du fortsætter med at skrive din kommentar, opdaterer GitHub Copilot sit forslag om autofuldførelse. Når du er klar til at acceptere forslaget, vælg Accepter eller tryk på Tab-tasten.
Når du opretter en ny kodelinje efter kommentaren, begynder GitHub Copilot at generere et kodeuddrag baseret på kommentaren og din eksisterende kode.
Acceptér hvert af forslagene, som de vises. Hvis GitHub Copilot ikke er færdig, genererer den et nyt forslag, som du kan acceptere.
Hvis du indtaster en ny kodelinje efter kodeuddraget er færdigt, genererer GitHub Copilot endnu et autofuldførelsesforslag baseret på kravene i dit kodeprojekt.
Resumé
Ghost-tekstforslag og forslag til næste redigering hjælper dig med at skrive kode mere effektivt og præcist. Ghost-tekstforslag vises som dæmpet tekst på markørens placering, mens du skriver; Forslag til næste redigering forudsiger placeringen og indholdet af din næste redigering baseret på dine seneste ændringer. Du kan generere et ghost text-forslag ved at indtaste en delvis eller komplet kodelinje, en delvis eller komplet kodekommentar eller en tom kodelinje. Du kan acceptere et forslag ved at trykke på tab-tasten eller afvise det ved at trykke på Esc-tasten. Du kan administrere forslag ved hjælp af den værktøjslinje, der vises, når du holder markøren over et forslag. Værktøjslinjen gør det muligt at gennemgå alternative forslag, acceptere et forslag, acceptere ét ord af et forslag eller åbne GitHub Copilot Completions Panel for at se flere forslag.