Zbadaj funkcje uzupełniania kodu GitHub Copilot
GitHub Copilot udostępnia dwa typy sugestii wbudowanych. Sugestie tekstowe są widoczne jako tekst przyciemniony w bieżącej lokalizacji kursora podczas wpisywania. Następne sugestie edycji (NES) przewidują zarówno lokalizację, jak i zawartość następnej edycji kodu na podstawie ostatnio wprowadzonych zmian.
Sugestie dotyczące tekstu tymczasowego są wyświetlane przy wykonywaniu następujących czynności:
- Wprowadź częściowy lub kompletny wiersz kodu w edytorze.
- Wprowadź częściowy lub kompletny komentarz kodu w edytorze.
- Wprowadź pusty wiersz kodu w edytorze.
Podczas edytowania kodu są automatycznie wyświetlane sugestie dotyczące następnej edycji. Przewidują, jaką zmianę prawdopodobnie wprowadzisz na podstawie ostatnich edycji i będą wyświetlane ze specjalnym wskaźnikiem pokazującym sugerowaną lokalizację edycji.
Typowe scenariusze sugestii dotyczących następnej edycji
Sugestie dotyczące następnej edycji są szczególnie przydatne w trzech scenariuszach kodowania:
-
Przechwytywanie błędów: NES wykrywa problemy, takie jak literówki (
conts x = 5→const x = 5), odwrócone wyrażenia ternarne i niepoprawne operatory porównania, a następnie sugeruje właściwą poprawkę. -
Kaskadowe zmiany intencji: Gdy zmieniasz nazwę typu lub zmiennej, NES sugeruje propagację tej zmiany przez cały kod zależny. Na przykład zmiana nazwy klasy z
PointnaPoint3Dwyzwala sugestie w celu dodania współrzędnejzw dowolnym miejscu, gdzie jest potrzebne. - Refaktoryzacja: po zmianie nazwy zmiennej raz NES sugeruje zaktualizowanie wszystkich pozostałych wystąpień. Po wklejeniu kodu NES sugeruje dostosowanie go do stylu otaczającego kodu.
Generowanie propozycji tekstu zastępczego
GitHub Copilot przyspiesza rozwój aplikacji, sugerując uzupełnienia kodu na podstawie pisanej przez Ciebie części.
Załóżmy na przykład, że chcesz utworzyć metodę języka C# o nazwie addInt , która zwraca sumę dwóch liczb całkowitych. Jeśli zaczniesz wpisywać podpis metody, GitHub Copilot sugeruje kod, który uważa, że chcesz utworzyć.
Sugestia "ghost text" jest wyświetlana bez kolorowego wyróżniania składni. Ułatwia to odróżnienie sugestii od istniejącego kodu. Sugerowany kod można zaakceptować, naciskając Tab.
Możesz nacisnąć Esc, aby odrzucić sugestię.
Przykład addInt jest nieco uproszczony, więc możesz się zastanawiać, jak GitHub Copilot robi z czymś bardziej złożonym.
Załóżmy, że chcesz utworzyć metodę, która akceptuje listę liczb i zwraca sumę liczb pierwszych zawartych na liście. Możesz nazwać metodę addPrimeNumbersInNumericList. Po rozpoczęciu wpisywania sygnatury metody GitHub Copilot generuje sugestię dla Ciebie. Przykład:
Ważne jest, aby przejrzeć sugestie przed ich zaakceptowaniem. Ta sugestia tekstowa duchów wygląda dobrze, więc możesz zaakceptować sugestię, naciskając klawisz Tab.
Kontynuujmy nieco dalej scenariusz.
Po scaleniu sugestii z kodem zauważysz, że metoda isPrime jest podkreślona na czerwono. Jest to spowodowane tym, że isPrime metoda jeszcze nie istnieje w kodzie.
GitHub Copilot jest szkolony w celu stosowania najlepszych rozwiązań, które obejmują podzielenie złożonych problemów na mniejsze, bardziej zarządzane elementy. W tym przypadku GitHub Copilot sugeruje utworzenie oddzielnej metody isPrime w celu sprawdzenia, czy liczba jest liczbą główną.
GitHub Copilot jest gotowa zasugerować fragment kodu dla metody isPrime. Po wprowadzeniu pustego wiersza poniżej metody addPrimeNumbersInNumericList GitHub Copilot sugeruje metodę isPrime, której można użyć.
Funkcjonalność podpowiedzi tekstowych przyspiesza proces rozwoju oprogramowania, udostępniając fragmenty kodu. Ale co zrobić, jeśli sugestie nie do końca spełniają twoje oczekiwania? GitHub Copilot udostępnia interfejs do zarządzania sugestiami dotyczącymi tekstu duchów.
Zarządzanie sugestiami tekstowymi typu "ghost"
Gdy GitHub Copilot proponuje uzupełnienie tekstu, udostępnia również interfejs do zarządzania sugestiami. Możesz zaakceptować sugestię, przejrzeć inne sugestie lub odrzucić sugestie.
Po najechaniu wskaźnikiem myszy na sugerowane autouzupełnianie, masz kilka opcji zarządzania tymi sugestiami.
Domyślny interfejs do zarządzania sugestiami obejmuje następujące opcje:
- Zaakceptuj sugestię (w całości), wybierając pozycję Akceptuj. Możesz również zaakceptować sugestię, naciskając Tab.
- Częściowo zaakceptuj sugestię, wybierając pozycję Accept Word. Możesz również częściowo zaakceptować sugestię, naciskając
Ctrl+→klawisze (strzałka w prawo). - Wyświetl alternatywne sugestie, wybierając
>lub<. Możesz również wyświetlić sugestie alternatywne, naciskającAlt+]klawisze lub .Alt+[
Wybranie opcji Accept Word akceptuje następne słowo w sugestii. Jest to przydatne, gdy chcesz zaakceptować część sugestii, a następnie kontynuować wpisywanie własnego kodu. Możesz na przykład zaakceptować pierwsze słowo sugestii isPrime metody.
Kontynuuj wybieranie Accept Word dopóki nie zaakceptujesz tak dużej ilości sugestii, jak chcesz.
Wybranie ikony wielokropka (...) po prawej stronie przycisku Akceptuj Word zawiera dodatkowe opcje, takie jak Accept Line i Always Show Toolbar.
Wybranie opcji Zawsze pokazuj pasek narzędzi gwarantuje, że pasek narzędzi pozostanie widoczny podczas korzystania ze skrótów klawiaturowych w celu zarządzania sugestiami tekstu ukrytego. Wybranie opcji Otwórz panel uzupełniania spowoduje otwarcie panelu uzupełniania GitHub Copilot.
Uwaga / Notatka
Aby zaakceptować cały wiersz sugestii, należy skonfigurować niestandardowy skrót klawiaturowy dla editor.action.inlineSuggest.acceptNextLine polecenia. Ta opcja jest domyślnie niedostępna na pasku narzędzi.
Generowanie sugestii dotyczących kodu na podstawie komentarzy
Oprócz sugerowania autouzupełniania na podstawie kodu, GitHub Copilot może używać komentarzy kodu do sugerowania fragmentów kodu. Użyj fraz języka naturalnego, aby opisać kod, który chcesz utworzyć. Dzięki temu GitHub Copilot zaproponuje propozycje autouzupełnień spełniające określone wymagania. Można na przykład określić typ algorytmu, którego chcesz użyć w obliczeniach, lub metody i właściwości, które chcesz dodać do klasy.
Wróćmy do przykładu liczby prime. W tym momencie masz następujący kod:
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;
}
Metody addPrimeNumbersInNumericList i isPrime wydają się być kompletne. Jednak podczas wywoływania metody nadal potrzebna jest lista liczb, których można użyć jako argumentu addPrimeNumbersInNumericList . Możesz napisać komentarz opisujący listę liczb, którą chcesz. Na przykład lista 100 losowych liczb z zakresu od 1 do 1000.
Po rozpoczęciu wprowadzania komentarza GitHub Copilot sugeruje autouzupełnianie, które kończy komentarz. GitHub Copilot używa otaczającego kodu, aby ulepszyć jego sugestie. Jeśli na przykład zaczniesz wprowadzać komentarz // create, GitHub Copilot używa otaczającego kodu do przewidywania, co chcesz utworzyć. W tym przypadku GitHub Copilot używa metody addPrimeNumbersInNumericList do przewidywania, że chcesz utworzyć a list of numbers.
Podczas pisania komentarza GitHub Copilot aktualizuje sugestię autouzupełniania. Gdy wszystko będzie gotowe do zaakceptowania sugestii, wybierz pozycję Akceptuj lub naciśnij klawisz Tab.
Po utworzeniu nowego wiersza kodu po komentarzu GitHub Copilot rozpoczyna generowanie fragmentu kodu na podstawie komentarza i istniejącego kodu.
Zaakceptuj każdą sugestię, gdy się pojawi. Jeśli GitHub Copilot nie zakończy działania, wygeneruje kolejną sugestię do zaakceptowania.
Jeśli wprowadzisz nowy wiersz kodu po zakończeniu fragmentu kodu, GitHub Copilot generuje kolejne sugestie autouzupełniania na podstawie wymagań projektu kodu.
Podsumowanie
Sugestie tekstu kontekstowego i następne sugestie edycji pomagają pisać kod wydajniej i dokładniej. Sugestie dotyczące tekstu duchów są wyświetlane jako wygaszony tekst w lokalizacji kursora podczas wpisywania; następne sugestie edycji przewidują lokalizację i zawartość następnej edycji na podstawie ostatnich zmian. Sugestię tekstową duchów można wygenerować, wprowadzając częściowy lub kompletny wiersz kodu, częściowy lub kompletny komentarz kodu albo pusty wiersz kodu. Możesz zaakceptować sugestię, naciskając klawisz Tab lub go odrzucić, naciskając klawisz Esc. Sugestiami można zarządzać, korzystając z paska narzędzi, który pojawia się po najechaniu kursorem na sugestię. Pasek narzędzi umożliwia przeglądanie alternatywnych sugestii, akceptowanie sugestii, akceptowanie jednego słowa sugestii lub otwieranie panelu uzupełniania GitHub Copilot, aby wyświetlić więcej sugestii.