Generieren von Code mithilfe von GitHub Copilot Codeabschlussvorschlägen

Abgeschlossen

GitHub Copilot können Codeabschlussvorschläge für zahlreiche Programmiersprachen und eine Vielzahl von Frameworks bereitstellen, eignet sich jedoch besonders gut für Python, JavaScript, TypeScript, Ruby, Go, C# und C++. Codezeilenvervollständigungen werden basierend auf dem Kontext des Codes generiert, den Sie schreiben. Sie können die von GitHub Copilot bereitgestellten Vorschläge annehmen, ablehnen oder teilweise annehmen.

GitHub Copilot bietet zwei Möglichkeiten zum Generieren von Codezeilenabschlussen:

  • Aus einem Kommentar: Sie können Codezeilenvervollständigungen generieren, indem Sie einen Kommentar schreiben, der den Code beschreibt, den Sie generieren möchten. GitHub Copilot bietet Codeabschlussvorschläge basierend auf dem kommentar, den Sie schreiben.

  • Aus dem Code: Sie können Codezeilenvervollständigungen generieren, indem Sie eine Codezeile starten oder die EINGABETASTE nach einer abgeschlossenen Codezeile drücken. GitHub Copilot bietet Codeabschlussvorschläge basierend auf dem von Ihnen geschriebenen Code.

Verwenden Sie GitHub Copilot, um Codevervollständigungen aus einem Kommentar zu generieren

GitHub Copilot generiert Codeabschlussvorschläge basierend auf dem Kommentar und dem vorhandenen Kontext Ihrer App.

Sie können Kommentare verwenden, um Codeschipsel, Methoden, Datenstrukturen und andere Codeelemente zu beschreiben.

Angenommen, Sie haben den folgenden Codeausschnitt:


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

Beispielsweise könnte der folgende Kommentar verwendet werden, um eine Datenstruktur zu erstellen:


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

GitHub Copilot generiert einen oder mehrere Codeabschlussvorschläge basierend auf Ihrem Codekommentar und den im Editor geöffneten Codedateien.

Screenshot der Codevervollständigung für einen Kommentar, der eine Datenstruktur beschreibt.

Beachten Sie die Datentypen, die zum Deklarieren der Felder der Datenstruktur verwendet werden. GitHub Copilot wählt Datentypen und Variablennamen basierend auf Dem vorhandenen Code und dem Codekommentar aus. GitHub Copilot versucht zu bestimmen, wie die Anwendung Variablen verwendet und die Datentypen entsprechend definiert.

Wenn GitHub Copilot mehrere Vorschläge generiert, können Sie die Vorschläge durchlaufen, indem Sie die nach links oder rechts weisenden Pfeile (> oder <) links neben der Schaltfläche Accept auswählen. Auf diese Weise können Sie den Vorschlag überprüfen und auswählen, der Ihren Anforderungen am besten entspricht.

Es ist in Ordnung, einen Codeabschlussvorschlag zu akzeptieren, der nicht genau mit dem gewünschten Ergebnis übereinstimmt. Die Änderungen, die zum „Beheben“ des Vorschlags erforderlich sind, sollten jedoch klar sein. In diesem Fall sind einige der Datentypen nicht die gewünschten, aber Sie können diese anpassen, nachdem Sie die vorgeschlagene automatische Vervollständigung akzeptiert haben.

Wenn keine der vorgeschlagenen Optionen Ihren Anforderungen ähnelt, gibt es zwei Möglichkeiten, die Sie testen können. Um eine neue Editor-Registerkarte mit einer Liste anderer Vorschläge zu öffnen, drücken Sie die Taste STRG + EINGABETASTE. Diese Tastenkombination öffnet eine neue Registerkarte mit bis zu 10 weiteren Vorschlägen. Auf jeden Vorschlag folgt eine Schaltfläche, mit der Sie den Vorschlag annehmen können. Die Registerkarte wird automatisch geschlossen, nachdem Sie einen Vorschlag angenommen haben. Die andere Option besteht darin, die ESC-TASTE zu drücken, um die Vorschläge zu schließen und es erneut zu versuchen. Sie können den Codekommentar anpassen, um mehr Kontext zum Arbeiten für GitHub Copilot bereitzustellen.

Hinweis

GitHub Copilot kann gelegentlich einen Vorschlag in Phasen vorschlagen. In diesem Fall können Sie die EINGABETASTE drücken, um weitere Phasen des Vorschlags nach Drücken der TAB-Taste anzuzeigen.

Um eine vorgeschlagene Datenstruktur zu akzeptieren, drücken Sie die TAB-Taste, oder wählen Sie Annehmen aus.

Aktualisieren Sie den Code wie folgt, um die Felddatentypen zu ändern:

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

Durch schnelle Anpassungen an Codeabschlussvorschlägen können Sie sicherstellen, dass Sie den gewünschten Code erstellen. Es ist besonders wichtig, früh im Entwicklungsprozess Korrekturen vorzunehmen, wenn immer noch große Teile Ihrer Codebasis entwickelt werden müssen. Nachfolgende Codeabschlüsse basieren auf dem Code, den Sie bereits geschrieben haben, daher ist es wichtig, sicherzustellen, dass Ihr Code so genau wie möglich ist.

Verwenden Sie die nächsten Bearbeitungsvorschläge, um die Codeänderungen nachzuvollziehen.

Ghost-Text-Vervollständigungen sind ideal, um neuen Code beim Schreiben zu ergänzen. Die meisten täglichen Codierungen beinhalten jedoch das Bearbeiten von vorhandenem Code – Umbenennen einer Variablen, Aktualisieren eines Datentyps oder Beheben eines Logikfehlers. Die nächsten Bearbeitungsvorschläge von GitHub Copilot (NES) sind genau für ein solches Szenario konzipiert.

Wenn Sie eine Bearbeitung vornehmen, analysiert NES die Änderung und prognostiziert sowohl, wo Ihre nächste Bearbeitung erfolgen muss als auch, was diese Bearbeitung sein soll – auch wenn sie sich in einer anderen Zeile oder in einem anderen Teil der Datei befindet. Dadurch bleiben Sie im Fluss, ohne manuell nach jedem Speicherort suchen zu müssen, für den Updates erforderlich sind.

Um nächste Bearbeitungsvorschläge zu aktivieren, legen Sie die Einstellung github.copilot.nextEditSuggestions.enabled auf true in Visual Studio Code fest.

Nach der Aktivierung können Sie NES auf folgende Weise verwenden:

  1. Nehmen Sie eine Bearbeitung im Editor vor, z. B. benennen Sie eine Variable um, oder ändern Sie eine Methodensignatur.

  2. Suchen Sie nach dem Randpfeil, der links vom Bearbeitungsfenster angezeigt wird. Der Pfeil zeigt auf die Position der nächsten vorgeschlagenen Bearbeitung.

  3. Drücken Sie die TAB-TASTE , um zum vorgeschlagenen Bearbeitungsort zu navigieren.

  4. Drücken Sie erneut die TAB-TASTE , um den Vorschlag anzunehmen, oder drücken Sie die ESCAPE-TASTE , um ihn zu schließen.

Nachfolgend finden Sie einige häufige Szenarien, in denen NES besonders hilfreich ist:

  • Umbenennen der Verteilung: Benennen Sie eine Variable einmal um, und NES schlägt vor, alle anderen Verweise darauf in der Datei zu aktualisieren.
  • Typänderungen: Ändern des Datentyps eines Felds und NES schlägt vor, den nachgelagerten Code zu aktualisieren, der ihn verwendet.
  • Logikkorrekturen: Korrigieren Sie eine invertierte Bedingung oder einen Tippfehler in einem Schlüsselwort, und NES kennzeichnet den zugehörigen Codeabschnitt, der Updates erfordert.
  • Refactoring: Nach dem Kopieren und Einfügen eines Codeblocks schlägt NES vor, wie sie ihn an den Stil des umgebenden Codes anpassen können.

Hinweis

Vorschläge für die nächste Bearbeitung prognostizieren die wahrscheinlichste nächste Änderung basierend auf Ihren aktuellen Bearbeitungen. Überprüfen Sie jeden Vorschlag immer, bevor Sie ihn annehmen, da sich die richtige Lösung für Ihr spezifisches Szenario möglicherweise unterscheidet.

Zusammenfassung

Codezeilenabschlusse sind ein leistungsstarkes Feature von GitHub Copilot, mit dem Sie Code schnell und effizient generieren können. Mithilfe von Kommentaren zum Beschreiben des Codes, den Sie generieren möchten, können Sie Datenstrukturen, Methoden und andere Codeelemente mit minimalem Aufwand erstellen. Darüber hinaus können GitHub Copilot Codezeilenabschlusse basierend auf dem eingegebenen Code generieren, sodass Sie komplexe Anwendungen mühelos erstellen können.