De functies voor het voltooien van code van GitHub Copilot onderzoeken

Voltooid

GitHub Copilot biedt twee typen inlinesuggesties. Suggesties voor spooktekst verschijnen als gedimd weergegeven tekst op de huidige cursorlocatie terwijl u typt. Volgende bewerkingssuggesties (NES) voorspellen zowel de locatie als de inhoud van de volgende codebewerking op basis van recente wijzigingen die u hebt aangebracht.

U ontvangt suggesties voor ghosttekst wanneer u de volgende acties uitvoert:

  • Voer een gedeeltelijke of volledige coderegel in de editor in.
  • Voer een gedeeltelijke of volledige code-opmerking in de editor in.
  • Voer een lege coderegel in de editor in.

Volgende bewerkingssuggesties worden automatisch weergegeven terwijl u code bewerkt. Ze voorspellen welke wijziging u waarschijnlijk de volgende wijziging aanbrengt op basis van uw recente wijzigingen en worden weergegeven met een speciale indicator met de voorgestelde bewerkingslocatie.

Veelvoorkomende scenario's voor volgende bewerkingssuggesties

Volgende bewerkingssuggesties zijn vooral handig in drie coderingsscenario's:

  • Fouten onderscheppen: NES detecteert problemen zoals typfouten (conts x = 5const x = 5), omgekeerde ternaire expressies en onjuiste vergelijkingsoperatoren, en stelt vervolgens de juiste oplossing voor.
  • Trapsgewijze intentiewijzigingen: Wanneer u de naam van een type of variabele wijzigt, wordt in NES voorgesteld die wijziging door alle afhankelijke code door te geven. Als u bijvoorbeeld de naam van een klasse wijzigt van Point naar Point3D, leidt dit tot suggesties om een z-coördinaat toe te voegen waar de code deze nodig heeft.
  • Herstructureren: Nadat u de naam van een variabele eenmaal hebt gewijzigd, stelt NES voor om elke andere voorkomen bij te werken. Nadat je de code hebt geplakt, stelt NES voor om het aan te passen aan de stijl van de omringende code.

Een suggestie voor spooktekst genereren

GitHub Copilot de ontwikkeling van apps versnellen door codevoltooiingen voor te stellen op basis van de code die u schrijft.

Stel dat u een C#-methode wilt maken met de naam addInt die de som van twee gehele getallen retourneert. Als u begint met het typen van de methodesignatuur, zal GitHub Copilot de code voorstellen die het denkt dat u wilt maken.

Schermafbeelding van Visual Studio Code editor met een suggestie voor ghosttekst voor de hoofdtekst van de addInt-methode.

De suggestie voor geesttekst wordt weergegeven zonder gekleurde syntaxismarkeringen. Hiermee kunt u de suggestie onderscheiden van uw bestaande code. U kunt de voorgestelde code accepteren door op de Tab-toets te drukken.

U kunt op de ESC-toets drukken om een suggestie te sluiten.

Het addInt voorbeeld is een beetje simplistisch, dus u vraagt zich misschien af hoe GitHub Copilot iets complexer doet.

Stel dat u een methode wilt maken die een lijst met getallen accepteert en de som van de priemgetallen in de lijst retourneert. U kunt de methode addPrimeNumbersInNumericListeen naam opgeven. Wanneer u begint met het typen van de methodehandtekening, genereert GitHub Copilot een suggestie voor u. Voorbeeld:

Schermafbeelding van Visual Studio Code editor met een suggestie voor ghosttekst voor de methode addPrimeNumbersInNumericList body.

Het is belangrijk om suggesties te bekijken voordat u ze accepteert. Deze suggestie voor geesttekst ziet er goed uit, zodat u de suggestie kunt accepteren door op de Tab-toets te drukken.

Laten we het scenario een beetje verder voortzetten.

Zodra de suggestie is samengevoegd in uw code, ziet u dat de isPrime methode rood wordt onderstreept. Dit komt doordat de isPrime methode nog niet bestaat in de code.

GitHub Copilot is getraind om best practices te volgen, waaronder het opsplitsen van complexe problemen in kleinere, beter beheersbare onderdelen. In dit geval stelt GitHub Copilot voor dat u een afzonderlijke methode isPrime maakt om te controleren of een getal priem is.

GitHub Copilot is klaar om een codefragment voor te stellen voor de isPrime methode. Wanneer u een lege regel invoert onder de methode addPrimeNumbersInNumericList, stelt GitHub Copilot een methode isPrime voor die u kunt gebruiken.

Schermafbeelding van Visual Studio Code editor met een suggestie voor ghosttekst voor de isPrime-helpermethode die wordt weergegeven na de methode addPrimeNumbersInNumericList.

Suggesties voor ghosttekst versnellen het ontwikkelingsproces door codefragmenten op te geven. Maar wat als de suggesties niet helemaal zijn wat u nodig hebt? GitHub Copilot biedt een interface om spooktekstsuggesties te beheren.

Suggesties voor geesttekst beheren

Wanneer GitHub Copilot suggesties voor een ghost tekstvoltooiing geeft, biedt het ook een interface voor het beheren van de suggesties. U kunt een suggestie accepteren, andere suggesties bekijken of de suggesties negeren.

Wanneer u de muisaanwijzer boven een voorgestelde autocompletie plaatst, ziet u verschillende opties voor het beheren van de suggesties.

Schermopname van Visual Studio Code editor met de beheerwerkbalk voor geesttekstsuggesties met Accepteren, Accepteren Word, navigatie en aanvullende opties.

De standaardinterface voor het beheren van suggesties bevat de volgende opties:

  • Accepteer de suggestie (volledig) door Accepteren te selecteren. U kunt de suggestie ook accepteren door op de Tab-toets te drukken.
  • Accepteer de suggestie gedeeltelijk door Accept Word te selecteren. U kunt ook gedeeltelijk een suggestie accepteren door op de Ctrl + toetsen (pijl-rechts) te drukken.
  • Alternatieve suggesties weergeven door te > selecteren of <. U kunt ook de alternatieve suggesties bekijken door op de Alt + ] of Alt + [ toetsen te drukken.

Als u de optie Accept Word selecteert, wordt de volgende word in een suggestie geaccepteerd. Dit is handig als u een deel van de suggestie wilt accepteren en vervolgens uw eigen code wilt typen. U kunt bijvoorbeeld het eerste woord van de isPrime methodesuggesties accepteren.

Ga door met het selecteren van Accept Word totdat u zoveel suggesties hebt geaccepteerd als u wilt.

Als u het beletselteken (...) rechts van de knop Accepteren Word selecteert, hebt u extra opties, zoals Accept Line en Always Show Toolbar.

Als u de optie Werkbalk Altijd weergeven selecteert, zorgt u ervoor dat de werkbalk zichtbaar blijft wanneer u sneltoetsen gebruikt om suggesties voor spooktekst te beheren. Door de optie Open Completions Panel te selecteren, wordt het deelvenster GitHub Copilot Voltooiingen geopend.

Opmerking

Als u een volledige regel van een suggestie wilt accepteren, moet u een aangepaste sneltoets voor de editor.action.inlineSuggest.acceptNextLine opdracht configureren. Deze optie is niet standaard beschikbaar op de werkbalk.

Codesuggesties genereren uit opmerkingen

Naast het voorstellen van een automatisch aanvullen op basis van code, kunt GitHub Copilot codeopmerkingen gebruiken om codefragmenten voor te stellen. Gebruik woordgroepen in natuurlijke taal om de code te beschrijven die u wilt maken. Hierdoor kan GitHub Copilot voorstellen doen voor automatisch aanvullen die aan specifieke vereisten voldoen. U kunt bijvoorbeeld het type algoritme opgeven dat u wilt gebruiken in een berekening of welke methoden en eigenschappen u wilt toevoegen aan een klasse.

We gaan terug naar het voorbeeld van het priemnummer. Op dit moment hebt u de volgende code:

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;
}

De addPrimeNumbersInNumericList en isPrime methoden lijken te zijn voltooid. U hebt echter nog steeds een lijst met getallen nodig die als argument kunnen worden gebruikt wanneer u de addPrimeNumbersInNumericList methode aanroept. U kunt een opmerking schrijven waarin de gewenste lijst met getallen wordt beschreven. Bijvoorbeeld een lijst met 100 willekeurige getallen die variëren van 1 en 1000.

Wanneer u begint met het typen van de opmerking, doet GitHub Copilot suggesties voor automatische aanvulling die de opmerking voor u voltooit. GitHub Copilot uw omringende code gebruikt om de suggesties te verbeteren. Als u bijvoorbeeld de opmerking // create invoert, gebruikt GitHub Copilot de omringende code om te voorspellen wat u wilt maken. In dit geval gebruikt GitHub Copilot de methode addPrimeNumbersInNumericList om te voorspellen dat u a list of numbers wilt maken.

Schermafbeelding van Visual Studio Code editor met een suggestie voor geesttekst waarmee een opmerking wordt voltooid voor '// een lijst met getallen maken'.

Terwijl u uw opmerking blijft schrijven, werkt GitHub Copilot de suggestie voor automatisch aanvullen bij. Wanneer u klaar bent om de suggestie te accepteren, selecteert u Accepteren of drukt u op de Tab-toets.

Wanneer u na de opmerking een nieuwe coderegel maakt, begint GitHub Copilot met het genereren van een codefragment op basis van de opmerking en uw bestaande code.

Schermopname van Visual Studio Code editor met een suggestie voor geesttekst voor de eerste coderegel op basis van de bovenstaande opmerking.

Accepteer elk van de suggesties zoals ze worden weergegeven. Als GitHub Copilot niet klaar is, wordt er nog een suggestie gegenereerd die u kunt accepteren.

Als u een nieuwe coderegel invoert nadat het codefragment is voltooid, GitHub Copilot nog een suggesties voor automatisch aanvullen genereert op basis van de vereisten van uw codeproject.

Samenvatting

Suggesties voor ghosttekst en volgende bewerkingssuggesties helpen u bij het efficiënter en nauwkeuriger schrijven van code. Suggesties voor geesttekst worden weergegeven als grijs weergegeven tekst op de cursorlocatie terwijl u typt; volgende bewerkingssuggesties voorspellen de locatie en inhoud van de volgende bewerking op basis van uw recente wijzigingen. U kunt een suggestie voor geesttekst genereren door een gedeeltelijke of volledige coderegel, een gedeeltelijke of volledige code-opmerking of een lege coderegel in te voeren. U kunt een suggestie accepteren door op de Tab-toets te drukken of deze te sluiten door op Esc te drukken. U kunt suggesties beheren met behulp van de werkbalk die wordt weergegeven wanneer u de muisaanwijzer boven een suggestie beweegt. Met de werkbalk kunt u alternatieve suggesties bekijken, een suggestie accepteren, één woord van een suggestie accepteren of het deelvenster GitHub Copilot Voltooiingen openen om meer suggesties weer te geven.