Generowanie kodu przy użyciu sugestii uzupełniania kodu GitHub Copilot
GitHub Copilot mogą udostępniać sugestie dotyczące uzupełniania kodu dla wielu języków programowania i szerokiej gamy struktur, ale działają szczególnie dobrze w przypadku Python, JavaScript, TypeScript, Ruby, Go, C# i C++. Uzupełnianie wierszy kodu jest generowane na podstawie kontekstu pisanego kodu. Możesz zaakceptować, odrzucić lub częściowo zaakceptować sugestie dostarczone przez GitHub Copilot.
GitHub Copilot udostępnia dwa sposoby generowania uzupełniania wierszy kodu:
Z komentarza: Możesz wygenerować uzupełnianie wierszy kodu, pisząc komentarz opisujący kod, który chcesz wygenerować. GitHub Copilot zawiera sugestie dotyczące uzupełniania kodu na podstawie komentarza, który piszesz.
Z poziomu kodu: możesz wygenerować uzupełnianie wiersza kodu, uruchamiając wiersz kodu lub naciskając Enter po zakończeniu wiersza kodu. GitHub Copilot zawiera sugestie dotyczące uzupełniania kodu na podstawie pisanego kodu.
Użyj GitHub Copilot, aby generować uzupełnienia kodu na podstawie komentarza.
GitHub Copilot generuje sugestie dotyczące uzupełniania kodu na podstawie komentarza i istniejącego kontekstu aplikacji.
Komentarze umożliwiają opisywanie fragmentów kodu, metod, struktur danych i innych elementów kodu.
Załóżmy, że masz następujący fragment kodu:
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");
}
}
Na przykład do utworzenia struktury danych można użyć następującego komentarza:
/* public struct SalesData. Include the following fields: date sold, department name, product ID, quantity sold, unit price */
GitHub Copilot generuje co najmniej jedną sugestię uzupełniania kodu na podstawie komentarza kodu i plików kodu otwartych w edytorze.
Zwróć uwagę na typy danych używane do deklarowania pól struktury danych. GitHub Copilot wybiera typy danych i nazwy zmiennych na podstawie istniejącego kodu i komentarza kodu. GitHub Copilot próbuje określić, w jaki sposób aplikacja używa zmiennych i odpowiednio definiuje typy danych.
Gdy GitHub Copilot generuje więcej niż jedną sugestię, możesz przejść przez sugestie, wybierając strzałki w lewo lub w prawo (> lub <) znajdujące się po lewej stronie Accept. Dzięki temu możesz przejrzeć i wybrać sugestię, która najlepiej odpowiada Twoim potrzebom.
Możesz zaakceptować sugestię uzupełniania kodu, która nie jest dokładnie zgodna z potrzebami. Jednak zmiany wymagane do "naprawienia" sugestii powinny być jasne. W takim przypadku niektóre typy danych nie są odpowiednie, ale można je dostosować po zaakceptowaniu sugerowanego autouzupełniania.
Jeśli żadna z sugerowanych opcji nie przypomina tego, czego potrzebujesz, możesz wypróbować dwie elementy. Aby otworzyć nową kartę edytora zawierającą listę innych sugestii, naciśnij Ctrl + Enter. Ta kombinacja klawiszy otwiera nową kartę z maksymalnie 10 dodatkowymi sugestiami. Po każdej sugestii znajduje się przycisk, którego można użyć do zaakceptowania sugestii. Karta zamyka się automatycznie po zaakceptowaniu sugestii. Inną opcją jest naciśnięcie Esc , aby odrzucić sugestie i spróbować ponownie. Możesz dostosować komentarz do kodu, aby GitHub Copilot miał więcej kontekstu do działania.
Uwaga / Notatka
GitHub Copilot od czasu do czasu może zaproponować sugestię stopniowo. W takim przypadku możesz nacisnąć Enter, aby zobaczyć dodatkowe etapy sugestii po naciśnięciu Tab.
Aby zaakceptować sugerowaną strukturę danych, naciśnij Tab lub wybierz pozycję Akceptuj.
Aby zmodyfikować typy danych pól, zaktualizuj kod w następujący sposób:
public struct SalesData
{
public DateOnly dateSold;
public string departmentName;
public int productID;
public int quantitySold;
public double unitPrice;
}
Szybkie dostosowanie sugestii dotyczących uzupełniania kodu pomaga upewnić się, że tworzysz odpowiedni kod. Szczególnie ważne jest wprowadzenie poprawek na wczesnym etapie procesu programowania, gdy trzeba opracowywać duże części bazy kodu. Kolejne uzupełnienia kodu są oparte na już napisanym kodzie, dlatego ważne jest, aby upewnić się, że kod jest tak dokładny, jak to możliwe.
Użyj kolejnych sugestii edycji, aby śledzić zmiany kodu
Automatyczne uzupełnianie tekstu jest doskonałe do wypełniania nowego kodu podczas jego pisania. Jednak większość codziennego kodowania obejmuje edytowanie istniejącego kodu — zmianę nazwy zmiennej, aktualizowanie typu danych lub naprawianie błędu logiki. Sugestie GitHub Copilot dotyczące następnej edycji (NES) zostały zaprojektowane dokładnie z myślą o takim scenariuszu.
Podczas wprowadzania edycji funkcja NES analizuje zmianę i przewiduje zarówno miejsce, w którym ma nastąpić kolejna edycja, jak i to, co powinno być edytowane — nawet jeśli znajduje się w innym wierszu lub w innej części pliku. Dzięki temu możesz zachować płynność pracy bez konieczności ręcznego wyszukiwania każdego miejsca, które wymaga aktualizacji.
Aby włączyć sugestie dotyczące następnej edycji, ustaw ustawienie github.copilot.nextEditSuggestions.enabled na wartość true w Visual Studio Code.
Po włączeniu funkcji NES można używać w następujący sposób:
Wprowadź edycję w edytorze — na przykład zmień nazwę zmiennej lub zmień sygnaturę metody.
Wyszukaj strzałkę rynna wyświetlaną po lewej stronie edytora. Strzałka wskazuje lokalizację następnej sugerowanej edycji.
Naciśnij klawisz Tab , aby przejść do sugerowanej lokalizacji edycji.
Naciśnij ponownie klawisz Tab , aby zaakceptować sugestię, lub naciśnij klawisz Escape , aby go odrzucić.
Oto kilka typowych scenariuszy, w których funkcja NES jest szczególnie przydatna:
- Propagacja zmiany nazwy: Jeśli zmienisz nazwę zmiennej raz, funkcja NES zasugeruje zaktualizowanie wszystkich innych odwołań do niej w pliku.
- Zmiany typu: Zmień typ danych pola, a funkcja NES sugeruje zaktualizowanie kodu podrzędnego, który go używa.
- Poprawki logiki: Napraw warunek odwrócony lub literówkę w słowie kluczowym i NES flaguje powiązaną sekcję kodu, która wymaga aktualizacji.
- Refaktoryzacja: po skopiowaniu i wklejeniu bloku kodu NES sugeruje, jak dostosować go do otaczającego stylu kodu.
Uwaga / Notatka
Następne sugestie edycji przewidują najbardziej prawdopodobną następną zmianę na podstawie bieżących edycji. Zawsze sprawdzaj każdą sugestię przed zaakceptowaniem, ponieważ właściwa poprawka dla konkretnego scenariusza może się różnić.
Podsumowanie
Uzupełnianie wierszy kodu to zaawansowana funkcja GitHub Copilot, która może pomóc w szybkim i wydajnym generowaniu kodu. Używając komentarzy do opisania kodu, który chcesz wygenerować, możesz tworzyć struktury danych, metody i inne elementy kodu przy minimalnym nakładzie pracy. Ponadto GitHub Copilot mogą generować uzupełnianie wierszy kodu na podstawie wprowadzonego kodu, co umożliwia łatwe tworzenie złożonych aplikacji.