Zbadaj funkcje uzupełniania kodu w GitHub Copilot

Ukończone

GitHub Copilot udostępnia sugestie autouzupełniania podczas wprowadzania kodu. Oprócz standardowych sugestii autouzupełniania, GitHub Copilot również dostarcza sugestie dotyczące następnej edycji (NES), które przewidują miejsce następnej zmiany, którą prawdopodobnie wprowadzisz, oraz sugerują jej ukończenie.

Podczas wykonywania następujących akcji otrzymujesz sugestie dotyczące stylu autouzupełniania:

  • 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.

Generuj sugestię autouzupełniania

GitHub Copilot przyspiesza tworzenie aplikacji, proponując uzupełnienia kodu na podstawie kodu, który piszesz.

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ć.

Zrzut ekranu przedstawiający autouzupełnianie w celu dodania dwóch liczb.

Sugerowane autouzupełnienie jest wyświetlane bez kolorowego podświetlania składni. Pomaga to odróżnić autouzupełnianie od istniejącego kodu. Sugerowany kod można zaakceptować, naciskając Tab.

Zrzut ekranu przedstawiający zaakceptowaną sugestię autouzupełniania.

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ę. Przykład:

Zrzut ekranu przedstawiający autouzupełnianie dla metody, która dodaje liczby pierwsze na liście.

Ważne jest, aby przejrzeć sugestie przed ich zaakceptowaniem. Propozycja autouzupełniania wygląda dobrze, można ją zaakceptować, 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.

Zrzut ekranu przedstawiający metodę addPrimeNumbersInNumericList scaloną z kodem z elementem isPrime podkreślonym na czerwono.

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 gotowy 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ć.

Zrzut ekranu przedstawiający autouzupełnianie w trakcie dodawania metody isPrime.

Sugestie autouzupełniania przyspieszają proces programowania, dostarczając fragmenty kodu. Ale co zrobić, jeśli sugestie nie do końca spełniają twoje oczekiwania? GitHub Copilot zapewnia interfejs do zarządzania propozycjami autouzupełniania.

Zarządzaj sugestiami autouzupełniania

Gdy GitHub Copilot sugeruje autouzupełnianie, 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.

Zrzut ekranu przedstawiający opcję

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ąc Alt + ] 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.

Zrzut ekranu przedstawiający opcję

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 umożliwia dostęp do dodatkowych opcji, takich jak Zawsze pokazuj pasek narzędzi i Otwórz panel uzupełniania.

Zrzut ekranu przedstawiający dodatkowe opcje paska narzędzi dla sugestii autouzupełniania.

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 autouzupełniania. Wybranie opcji Otwórz panel uzupełniania otwiera panel uzupełniania GitHub Copilot. Wyświetlanie wielu sugestii przy użyciu panelu uzupełniania GitHub Copilot zostało omówione na końcu tej lekcji.

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 proponuje sugestie autouzupełniania 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:

Zrzut ekranu przedstawiający bieżący kod przykładowego numeru podstawowego.

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 poprawić 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.

Zrzut ekranu przedstawiający wyraz

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.

Zrzut ekranu przedstawiający wyrazy

Po utworzeniu nowego wiersza kodu po komentarzu GitHub Copilot rozpoczyna generowanie fragmentu kodu na podstawie komentarza i istniejącego kodu.

Screenshot przedstawiający GitHub Copilot dodawanie pierwszego wiersza kodu.

Zaakceptuj każdą sugestię, gdy się pojawi.

Jeśli GitHub Copilot nie zakończy pracy, wygeneruje kolejną sugestię do zaakceptowania.

Zrzut ekranu przedstawiający GitHub Copilot uzupełniający listę liczb.

Jeśli wprowadzisz nowy wiersz kodu po zakończeniu fragmentu kodu, GitHub Copilot generuje kolejne sugestie autouzupełniania na podstawie wymagań projektu kodu. W tym przypadku GitHub Copilot sugeruje wiersz kodu, który wywołuje metodę addPrimeNumbersInNumericList, przekazując listę o nazwie numbers.

Zrzut ekranu przedstawiający GitHub Copilot sugerującego wywołanie metody.

Wyświetlanie wielu sugestii przy użyciu panelu uzupełniania GitHub Copilot

Jeśli nie jesteś zadowolony z początkowych sugestii autouzupełniania, GitHub Copilot może otworzyć nową kartę w edytorze z większą ilością opcji. Możesz przejrzeć większą listę sugestii, aby znaleźć lepsze dopasowanie, a następnie wybrać ją.

Aby zademonstrować tę funkcję, wróćmy do wcześniejszego etapu w przykładzie liczb pierwszych.

Załóżmy, że nadal musisz utworzyć metodę isPrime . Po wprowadzeniu pustego wiersza poniżej metody addPrimeNumbersInNumericList GitHub Copilot sugeruje metodę isPrime. Jest to ten sam proces, który został użyty wcześniej. Załóżmy jednak, że nie jesteś zadowolony z sugestii, które oferuje GitHub Copilot, i chcesz zobaczyć więcej opcji.

Aby otworzyć panel uzupełniania GitHub Copilot i wyświetlić inne sugestie, naciśnij klawisze Ctrl + Enter. Możesz również otworzyć menu Więcej akcji i wybrać pozycję Otwórz panel uzupełniania.

Zrzut ekranu przedstawiający zakładkę sugestii GitHub Copilot.

Panel uzupełniania GitHub Copilot wyświetla maksymalnie 10 innych sugestii. Przejrzyj sugestie, aby znaleźć te, które najlepiej pasują do Twoich potrzeb.

Aby zaakceptować sugestię, wybierz etykietę Zaakceptuj numer sugestii poniżej sugestii. Na przykład wybierz etykietę Zaakceptuj sugestię 1 poniżej pierwszej sugestii.

Aby odrzucić wszystkie sugestie, zamknij kartę.

Podsumowanie

Sugestie autouzupełniania i kolejne sugestie edycji ułatwiają wydajniejsze i dokładniejsze pisanie kodu. GitHub Copilot udostępnia sugestie autouzupełniania podczas wprowadzania kodu i następne sugestie edycji, które przewidują kolejną prawdopodobną edycję. Możesz wygenerować sugestię autouzupełniania, wprowadzając częściowy lub kompletny wiersz kodu, częściowy lub kompletny komentarz kodu lub pusty wiersz kodu. Możesz zaakceptować sugestię, naciskając Tab lub odrzucając sugestie, naciskając 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.