Generér kode ved hjælp af forslag til fuldførelse af GitHub Copilot-kode

Fuldført

GitHub Copilot kan levere forslag til fuldførelse af kode for mange programmeringssprog og en lang række strukturer, men fungerer især godt for Python, JavaScript, TypeScript, Ruby, Go, C# og C++. Fuldførelse af kodelinje genereres på baggrund af konteksten for den kode, du skriver. Du kan acceptere, afvise eller delvist acceptere forslagene fra GitHub Copilot.

GitHub Copilot giver to måder at generere fuldførelser af kodelinje på:

  • Fra en kommentar: Du kan generere fuldførelser af kodelinjen ved at skrive en kommentar, der beskriver den kode, du vil generere. GitHub Copilot indeholder forslag til fuldførelse af kode baseret på den kommentar, du skriver.

  • Fra kode: Du kan generere fuldførelser af kodelinjen ved at starte en kodelinje eller ved at trykke på Enter efter en fuldført kodelinje. GitHub Copilot indeholder forslag til fuldførelse af kode baseret på den kode, du skriver.

Brug GitHub Copilot til at generere fuldførelser af kodelinjen ud fra en kommentar

GitHub Copilot genererer forslag til fuldførelse af kode baseret på kommentaren og den eksisterende kontekst for din app.

Du kan bruge kommentarer til at beskrive kodestykker, metoder, datastrukturer og andre kodeelementer.

Antag, at du har følgende kodestykke:


namespace ReportGenerator;

class QuarterlyIncomeReport
{
    static void Main(string[] args)
    {
        // create a new instance of the class
        QuarterlyIncomeReport report = new QuarterlyIncomeReport();

        // call the GenerateSalesData method

        // call the QuarterlySalesReport method
        
    }

    public void QuarterlySalesReport()
    {

        Console.WriteLine("Quarterly Sales Report");
    }
}    

Følgende kommentar kan f.eks. bruges til at oprette en datastruktur:


// public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price

GitHub Copilot genererer et eller flere forslag til fuldførelse af kode baseret på din kodekommentar og de kodefiler, der er åbne i editoren.

Skærmbillede, der viser kodefuldførelsen for en kommentar, der beskriver en datastruktur.

Bemærk de datatyper, der bruges til at deklarere felterne i datastrukturen. GitHub Copilot vælger datatyper og variabelnavne baseret på din eksisterende kode og kodekommentaren. GitHub Copilot forsøger at bestemme, hvordan programmet bruger variabler, og definerer datatyperne i overensstemmelse hermed.

Når GitHub Copilot genererer mere end ét forslag, kan du gennemgå forslagene ved at vælge venstre eller højre pil (> eller <), der er placeret til venstre for knappen Acceptér. Dette giver dig mulighed for at gennemse og vælge det forslag, der passer bedst til dine behov.

Det er i orden at acceptere et forslag til kodefuldførelse, der ikke stemmer nøjagtigt overens med det, du ønsker. Men de ændringer, der kræves for at "løse" forslaget, skal være tydelige. I dette tilfælde er nogle af datatyperne ikke, som du ønsker, men du kan justere dem, når du har accepteret den foreslåede autofuldførelse.

Hvis ingen af de foreslåede indstillinger ligner det, du har brug for, er der to ting, du kan prøve. Hvis du vil åbne en ny editorfane, der indeholder en liste over andre forslag, skal du trykke på Ctrl + Enter taster. Denne kombination af genvejstaster åbner en ny fane, der indeholder op til 10 forslag mere. Hvert forslag efterfølges af en knap, som du kan bruge til at acceptere forslaget. Fanen lukkes automatisk, når du har accepteret et forslag. Din anden mulighed er at trykke på tasten Esc for at afvise forslagene og prøve igen. Du kan justere kodekommentaren for at give mere kontekst, som GitHub Copilot kan arbejde med.

Seddel

GitHub Copilot kan undertiden foreslå et forslag i faser. Hvis dette sker, kan du trykke på Enter for at få vist flere faser i forslaget, når du har trykket på tabulatortasten.

Hvis du vil acceptere en foreslået datastruktur, skal du trykke på tabulatortasten eller vælge Acceptér.

Hvis du vil ændre feltdatatyperne, skal du opdatere din kode på følgende måde:

public struct SalesData
{
    public DateOnly dateSold;
    public string departmentName;
    public int productID;
    public int quantitySold;
    public double unitPrice;
}

Hurtig justering af forslag til kodefuldførelse hjælper med at sikre, at du opretter den ønskede kode. Det er især vigtigt at foretage rettelser tidligt i din udviklingsproces, når store dele af din kodebase stadig skal udvikles. Efterfølgende kodefuldførelser er baseret på den kode, du allerede har skrevet, så det er vigtigt at sikre, at din kode er så nøjagtig som muligt.

Brug GitHub Copilot til at generere fuldførelser af kodelinjen ud fra en kommentar

GitHub Copilot genererer forslag til fuldførelse af kode baseret på kommentaren og den eksisterende kontekst for din app. Du kan bruge kommentarer til at beskrive kodestykker, metoder, datastrukturer og andre kodeelementer.

Brug følgende trin til at fuldføre dette afsnit i øvelsen:

  1. Opret to tomme kodelinjer under metoden i den Main fil.

  2. Hvis du vil oprette en datastruktur, der kan bruges til at generere testdata, skal du oprette følgende kodekommentar og derefter trykke på Enter:

    // public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price
    

    GitHub Copilot genererer et eller flere forslag til fuldførelse af kode baseret på din kodekommentar og eventuel eksisterende kode, som den finder i din app.

  3. Brug et øjeblik på at gennemse forslagene til fuldførelse af koden fra GitHub Copilot.

    Seddel

    Hvis GitHub Copilot genererer forslag til en metode i stedet for en datastruktur, skal du skrive offentlige str og vente på, at forslaget til kodefuldførelse opdateres. GitHub Copilot bruger de yderligere oplysninger til at forbedre sine forslag.

    Skærmbillede, der viser kodefuldførelsen for en kommentar, der beskriver en datastruktur.

    Bemærk de datatyper, der bruges til at deklarere felterne i datastrukturen. GitHub Copilot vælger datatyper og variabelnavne baseret på din eksisterende kode og kodekommentaren. GitHub Copilot forsøger at bestemme, hvordan programmet bruger variabler, og definerer datatyperne i overensstemmelse hermed.

    Når GitHub Copilot genererer mere end ét forslag, kan du gennemgå forslagene ved at vælge venstre eller højre pil (> eller <), der er placeret til venstre for knappen Acceptér. Dette giver dig mulighed for at gennemse og vælge det forslag, der passer bedst til dine behov.

    Det er i orden at acceptere et forslag til kodefuldførelse, der ikke stemmer nøjagtigt overens med det, du ønsker. Men de ændringer, der kræves for at "løse" forslaget, skal være tydelige. I dette tilfælde er nogle af datatyperne ikke, som du ønsker, men du kan justere dem, når du har accepteret den foreslåede autofuldførelse.

    Hvis ingen af de foreslåede indstillinger ligner det, du har brug for, er der to ting, du kan prøve. Hvis du vil åbne en ny editorfane, der indeholder en liste over andre forslag, skal du trykke på Ctrl + Enter taster. Denne kombination af genvejstaster åbner en ny fane, der indeholder op til 10 forslag mere. Hvert forslag efterfølges af en knap, som du kan bruge til at acceptere forslaget. Fanen lukkes automatisk, når du har accepteret et forslag. Din anden mulighed er at trykke på tasten Esc for at afvise forslagene og prøve igen. Du kan justere kodekommentaren for at give mere kontekst, som GitHub Copilot kan arbejde med.

    Seddel

    GitHub Copilot kan undertiden foreslå et forslag i faser. Hvis dette sker, kan du trykke på Enter for at få vist flere faser i forslaget, når du har trykket på tabulatortasten.

  4. Hvis du vil acceptere en foreslået datastruktur, skal du trykke på tabulatortasten eller vælge Acceptér.

  5. Hvis du vil ændre feltdatatyperne, skal du opdatere din kode på følgende måde:

    public struct SalesData
    {
        public DateOnly dateSold;
        public string departmentName;
        public int productID;
        public int quantitySold;
        public double unitPrice;
    }
    

    Hurtig justering af forslag til kodefuldførelse hjælper med at sikre, at du opretter den ønskede kode. Det er især vigtigt at foretage rettelser tidligt i din udviklingsproces, når store dele af din kodebase stadig skal udvikles. Kodefuldførelser er baseret på din eksisterende kode, så det er vigtigt at sikre, at din kode er så nøjagtig som muligt.

  6. Opret to tomme kodelinjer under den SalesData datastruktur.

  7. Hvis du vil oprette en metode, der genererer testdata ved hjælp af datastrukturen SalesData, skal du skrive følgende kodekommentar og derefter trykke på Enter:

    /* the GenerateSalesData method returns 1000 SalesData records. It assigns random values to each field of the data structure */
    
  8. Brug et øjeblik på at gennemse forslagene til fuldførelse af koden fra GitHub Copilot.

    Bemærk, at metoden GenerateSalesData er designet til at returnere en matrix af SalesData objekter. Metoden genererer 1.000 poster med testdata, hvor der tildeles tilfældige værdier til hvert felt i SalesData datastrukturen.

    Skærmbillede, der viser kodefuldførelsen for en kommentar, der beskriver en metode.

    Du bør altid gennemse de forslag, der er foreslået af GitHub Copilot og GitHub Copilot Chat, selv når de ser ud til at være korrekte.

    Seddel

    Hvis GitHub Copilot foreslår en enkelt kodelinje i stedet for en fuldført GenerateSalesData metode, skal du trykke på Ctrl + Enter for at åbne fanen Forslag til GitHub Copilot. Gennemse forslagene under den nye fane. På næste trin skal du bruge knappen "Acceptér forslag #" til at acceptere forslaget. GitHub Copilot præsenterer nogle gange forslag trinvist. Selvom du kan acceptere fuldførelsen af koden trinvist, er det bedre at bruge fanen GitHub Copilot-forslag til at gennemse det fulde forslag, før du beslutter dig for at acceptere eller kassere.

  9. Rul gennem forslag til kodefuldførelse, og vælg det bedste match for kravene.

  10. Tryk på tabulatortasten for at acceptere kodefuldførelsen.

    Bemærk, at forslaget til kodefuldførelse indeholder en syntaksfejl i den kode, der bruges til at generere feltet DateSold. DateOnly accepterer tre heltalsværdier, der skal angives i den korrekte rækkefølge: Year, Month, Day.

  11. Hvis du vil angive et enkelt år for den kode, der bruges til at generere feltet DateSold, skal du opdatere kodelinjen på følgende måde:

    salesData[i].DateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29));
    
  12. Hvis det er nødvendigt, skal du justere de andre kodelinjer, så de stemmer overens med følgende kodestykke:

    public SalesData[] GenerateSalesData()
    {
        SalesData[] salesData = new SalesData[1000];
        Random random = new Random();
    
        for (int i = 0; i < salesData.Length; i++)
        {
            salesData[i].dateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29));
            salesData[i].departmentName = "Department " + random.Next(1, 11);
            salesData[i].productID = random.Next(1, 101);
            salesData[i].quantitySold = random.Next(1, 101);
            salesData[i].unitPrice = random.NextDouble() * 100;
        }
    
        return salesData;
    }
    

Muligheden for at generere kode fra kodekommentarer er en effektiv funktion i GitHub Copilot. Med kun to kommentarer kunne du oprette en datastruktur og en metode, der genererer testdata.

Brug GitHub Copilot til at generere fuldførelser af kodelinje

GitHub Copilot kan generere fuldførelser af kodelinje baseret på den kode, du angiver. Du kan generere fuldførelser af kodelinjen på to måder:

  • Begynd at angive en kodelinje, og vent derefter på, at GitHub Copilot foreslår en automatisk fuldførelse af din ikke-færdigbehandlede kodelinje.
  • Angiv en komplet kodelinje, tryk på tasten Enter, og vent derefter på, at GitHub Copilot foreslår en autofuldførelse for den næste kodelinje.

Seddel

GitHub Copilot genererer foreslåede kodefuldførelser baseret på den kode, du angiver, og den kontekst, der er defineret af koden i din app. Jo mere kode, du har tilgængelig i din app, jo mere kontekst har GitHub Copilot, når der genereres et svar. GitHub Copilot kan basere svar på din eksisterende kode, så kvaliteten af din kode er vigtig. I takt med at mængden og kvaliteten af eksisterende kode øges, øges kvaliteten og pålideligheden af de fuldførelser af kodelinjen, der foreslås af GitHub Copilot. GitHub Copilot er god til at generere fuldførelser af kodelinje for almindelige programmeringsopgaver og -mønstre, især når der skal genereres en sekvens af relaterede komponenter.

I denne del af øvelsen arbejder du på metoden QuarterlySalesReport.

Her er de opgaver, du skal udføre:

  • Opdater metodekonstruktøren med en parameter, der accepterer din samling af SalesData objekter.
  • Brug GitHub Copilot til at generere fuldførelser af kodelinje, der behandler salgsdata for kvartalsrapporten.
  • Kør appen, og gennemse kvartalssalgsrapporten.

Brug følgende trin til at fuldføre dette afsnit i øvelsen:

  1. Opdater metodekonstruktøren for QuarterlySalesReport på følgende måde:

    public void QuarterlySalesReport(SalesData[] salesData)
    
  2. Brug et øjeblik på at overveje den kode, du skal udvikle.

    Konceptet er ligetil. Koden skal beregne kvartalsvise salg baseret på dine salgsdata og derefter skrive en rapport. Hvis du vil gøre det, skal din kode:

    • Gentage gennem samlingen salesData.
    • Beregn værdien af hvert salg baseret på det solgte antal og enhedsprisen.
    • Brug salgsdatoen til at bestemme, hvilket kvartal et salg tilhører.
    • Sammenfat salget for hvert kvartal.
    • Skriv en rapport over salget efter kvartal.

    En mulighed er at begynde at angive koden for en foreach løkke og derefter se, hvad GitHub Copilot foreslår.

  3. I metoden QuarterlySalesReport skal du oprette en ny kodelinje øverst i kodeblokken.

    Der skal være mindst én tom kodelinje mellem den nye kodelinje og den kodelinje, der indeholder Console.WriteLine().

  4. Hvis du vil generere en fuldførelse af en kodelinje, skal du skrive foreach ( og derefter vente på, at GitHub Copilot foreslår indstillinger for fuldførelse af kodelinje.

  5. Gennemse den kodefuldførelse, der foreslås af GitHub Copilot.

    Skærmbillede, der viser kodefuldførelsen for en foreach-løkke.

    Den foreslåede kodefuldførelse er ikke det, du ønsker.

    Selvom GitHub Copilot foreslår en foreach løkke, der gentages via salesData, er der ingen analyser eller beregninger i løkken. Den foreslåede kode indeholder Console.WriteLine sætninger, som du ikke ønsker eller har brug for.

  6. Brug et øjeblik på at overveje, hvorfor GitHub Copilot foreslår Console.WriteLine udsagn.

    Husk, at GitHub Copilot genererer forslag til fuldførelse af kode baseret på konteksten af din kode. I dette tilfælde har du ikke rigtig meget kode til GitHub Copilot at overveje. Og situationen bliver værre.

    Den kode, som GitHub Copilot ser i din metode, er en Console.WriteLine sætning. Da der ikke er nogen anden kontekst tilgængelig i metoden og ingen lignende metoder i din kodebase at trække fra, konkluderer GitHub Copilot, at du måske vil haveConsole.WriteLine-sætninger i foreach-løkken.

    GitHub Copilot fungerer bedst, når din kode er ren og fokuseret. Hvis du får vist overflødige kodekommentarer eller -sætninger i din kode, kan du fjerne dem, før du forsøger at bruge fuldførelse af GitHub Copilot-kode.

  7. Hvis du vil rydde op i din kode, før du giver GitHub Copilot endnu et forsøg, skal du udføre følgende trin:

    • Annuller den foreslåede foreach ( kodefuldførelse.
    • Slet den delvise foreach ( sætning, du har angivet.
    • Slet Console.WriteLine-sætningen fra din QuarterlySalesReport-metode.

    Nu skal du være klar til at prøve GitHub Copilot igen.

  8. Sørg for, at din QuarterlySalesReport-metode ligner følgende kode:

    public void QuarterlySalesReport(SalesData[] salesData)
    {
    
    
    }
    
  9. Placer markøren på en tom kodelinje i metoden QuarterlySalesReport, og tryk derefter på Enter.

    Det kan tage et øjeblik for GitHub Copilot at generere den foreslåede kodefuldførelse.

  10. Brug et øjeblik på at gennemse de foreslåede kodefuldførelser.

    Vigtigt

    De kodefuldførelser, du modtager, er sandsynligvis forskellige fra de forslag, der vises på følgende skærmbillede. Selvom GitHub Copilot kun har et metodenavn og en parameter at arbejde med, kan det være nok til at generere nyttige forslag. Du bør se forslag, der beregner salg efter kvartal. Hvis du afviser forslagene og prøver igen, kan det give forskellige resultater.

    Skærmbillede, der viser et forslag til kodefuldførelse, der behandler data for en rapport.

    Du kan gennemgå forslagene ved at vælge > eller <.

    Bemærk, at den foreslåede kodefuldførelse gentages via salgsdataene og udfører kvartalsvise salgsberegninger.

  11. Tryk på tabulatortasten for at acceptere den foreslåede kodefuldførelse.

    Den foreslåede kodefuldførelse beregner og viser kvartalsresultatet baseret på salgsdata.

    // create a dictionary to store the quarterly sales data
    Dictionary<string, double> quarterlySales = new Dictionary<string, double>();
    
    // iterate through the sales data
    foreach (SalesData data in salesData)
    {
        // calculate the total sales for each quarter
        string quarter = GetQuarter(data.dateSold.Month);
        double totalSales = data.quantitySold * data.unitPrice;
    
        if (quarterlySales.ContainsKey(quarter))
        {
            quarterlySales[quarter] += totalSales;
        }
        else
        {
            quarterlySales.Add(quarter, totalSales);
        }
    }
    
    // display the quarterly sales report
    Console.WriteLine("Quarterly Sales Report");
    Console.WriteLine("----------------------");
    foreach (KeyValuePair<string, double> quarter in quarterlySales)
    {
        Console.WriteLine(entry.Key + ": $" + entry.Value);
    }
    
    
  12. Bemærk, at metoden GetQuarter bruger måneden for salget til at bestemme salgets kvartal.

    Metoden GetQuarter oprettes derefter.

  13. Opret to tomme kodelinjer under metoden QuarterlySalesReport.

  14. Bemærk, at GitHub Copilot foreslår en kodefuldførelse for metoden GetQuarter.

    Med den kontekst, der leveres af metoden QuarterlySalesReport, kan GitHub Copilot nemt generere en kodefuldførelse for den GetQuarter metode, der bestemmer kvartalet baseret på måneden for salget.

  15. Brug et minut på at gennemse den foreslåede fuldførelse af kodelinjen for metoden GetQuarter.

    Skærmbillede, der viser kodefuldførelsen for metoden GetQuarter.

  16. Tryk på tabulatortasten for at acceptere den foreslåede kodefuldførelse.

    public string GetQuarter(int month)
    {
        if (month >= 1 && month <= 3)
        {
            return "Q1";
        }
        else if (month >= 4 && month <= 6)
        {
            return "Q2";
        }
        else if (month >= 7 && month <= 9)
        {
            return "Q3";
        }
        else
        {
            return "Q4";
        }
    }
    
  17. Bemærk, at metoden Main skal fuldføres, før du kan køre koden.

    Du kan bruge kommentarerne i metoden Main til at opdatere din kode.

  18. Placer markøren i slutningen af // call the GenerateSalesData method kodekommentar, og tryk derefter på Enter.

    GitHub Copilot bruger kommentaren til at foreslå en kaldsætning for metoden.

  19. Gennemse og acceptér derefter den kodefuldførelse, der foreslås af GitHub Copilot.

  20. Gentag processen for // call the QuarterlySalesReport method kodekommentar.

  21. Metoden Main skal indeholde følgende kode:

    static void Main(string[] args)
    {
        // create a new instance of the class
        QuarterlyIncomeReport report = new QuarterlyIncomeReport();
    
        // call the GenerateSalesData method
        SalesData[] salesData = report.GenerateSalesData();
    
        // call the QuarterlySalesReport method
        report.QuarterlySalesReport(salesData);
    }
    
    
  22. Brug et øjeblik på at gennemse koden i din QuarterlyIncomeReport klasse.

    namespace ReportGenerator
    {
        class QuarterlyIncomeReport
        {
            static void Main(string[] args)
            {
                // create a new instance of the class
                QuarterlyIncomeReport report = new QuarterlyIncomeReport();
    
                // call the GenerateSalesData method
                SalesData[] salesData = report.GenerateSalesData();
    
                // call the QuarterlySalesReport method
                report.QuarterlySalesReport(salesData);
            }
    
            /* public struct SalesData includes the following fields: date sold, department name, product ID, quantity sold, unit price */
            public struct SalesData
            {
                public DateOnly dateSold;
                public string departmentName;
                public int productID;
                public int quantitySold;
                public double unitPrice;
            }
    
            /* the GenerateSalesData method returns 1000 SalesData records. It assigns random values to each field of the data structure */
            public SalesData[] GenerateSalesData()
            {
                SalesData[] salesData = new SalesData[1000];
                Random random = new Random();
    
                for (int i = 0; i < 1000; i++)
                {
                    salesData[i].dateSold = new DateOnly(2023, random.Next(1, 13), random.Next(1, 29));
                    salesData[i].departmentName = "Department " + random.Next(1, 11);
                    salesData[i].productID = random.Next(1, 101);
                    salesData[i].quantitySold = random.Next(1, 101);
                    salesData[i].unitPrice = random.NextDouble() * 100;
                }
    
                return salesData;
            }
    
            public void QuarterlySalesReport(SalesData[] salesData)
            {
                // create a dictionary to store the quarterly sales data
                Dictionary<string, double> quarterlySales = new Dictionary<string, double>();
    
                // iterate through the sales data
                foreach (SalesData data in salesData)
                {
                    // calculate the total sales for each quarter
                    string quarter = GetQuarter(data.dateSold.Month);
                    double totalSales = data.quantitySold * data.unitPrice;
    
                    if (quarterlySales.ContainsKey(quarter))
                    {
                        quarterlySales[quarter] += totalSales;
                    }
                    else
                    {
                        quarterlySales.Add(quarter, totalSales);
                    }
                }
    
                // display the quarterly sales report
                Console.WriteLine("Quarterly Sales Report");
                Console.WriteLine("----------------------");
                foreach (KeyValuePair<string, double> quarter in quarterlySales)
                {
                    Console.WriteLine(entry.Key + ": $" + entry.Value);
                }
            }
    
            public string GetQuarter(int month)
            {
                if (month >= 1 && month <= 3)
                {
                    return "Q1";
                }
                else if (month >= 4 && month <= 6)
                {
                    return "Q2";
                }
                else if (month >= 7 && month <= 9)
                {
                    return "Q3";
                }
                else
                {
                    return "Q4";
                }
            }
        }
    }
    
    

    Denne kode blev næsten udelukkende oprettet ved hjælp af fuldførelse af kodelinjen, der er genereret af GitHub Copilot. Din gennemgang af kodeforslag er dog vigtig, og der kræves rettelser. Du bør altid gennemse de kodefuldførelser, der foreslås af GitHub Copilot, for at sikre, at koden opfylder dine krav.

  23. Kør appen for at gennemse rapportoutputtet.

    Åbn et terminalvindue i Visual Studio Code, og angiv derefter følgende kommando:

    dotnet run
    

    Outputtet skal vise den kvartalsvise indkomstrapport, der viser afdelingens navn, kvartal og indkomst for hver afdeling og hvert kvartal, der er repræsenteret i testdataene.

  24. Gennemse outputtet i vinduet Terminal.

    Selvom kvartalsresultaterne er baseret på tilfældige numeriske værdier, kan du se en rapport, der er formateret på samme måde som følgende output:

    
    Quarterly Sales Report
    ----------------------
    Q3: $635637.5019563352
    Q4: $672247.315297204
    Q2: $667269.194630603
    Q1: $642769.2700531208
    
    

Resumé

Fuldførelse af kodelinje er en effektiv funktion i GitHub Copilot, der kan hjælpe dig med at generere kode hurtigt og effektivt. Når du bruger kommentarer til at beskrive den kode, du vil generere, kan du oprette datastrukturer, metoder og andre kodeelementer med en minimal indsats. Derudover kan GitHub Copilot generere fuldførelser af kodelinje baseret på den kode, du angiver, så du nemt kan bygge komplekse programmer.