Przejdź do treści
← Kurs M02L02 · Sugestie Inline 📘
📘 Podstawowy M02L02 M02 · Lekcja 2 z 3 12 min Ćwiczenie

Next Edit Suggestions: Copilot wie co zrobisz dalej

Jak działa Next Edit Suggestions - funkcja, która przewiduje kolejne logiczne zmiany w kodzie na podstawie Twojego edytowania.

Czego się nauczysz

  • Czym Next Edit Suggestions różni się od zwykłego ghost text
  • Jak NES przewiduje nie tylko treść zmiany, ale też miejsce kolejnego edytu
  • Kiedy NES realnie przyspiesza pracę, a kiedy lepiej go ograniczyć

To nie jest zwykłe autocomplete

Kiedy większość osób słyszy “inline suggestions”, myśli o dokańczaniu bieżącej linii.

To prawda, ale tylko częściowo.

VS Code poszedł krok dalej i dołożył Next Edit Suggestions, czyli tryb, w którym Copilot próbuje przewidzieć nie tylko to, co dopiszesz przy kursorze, ale też jaka powinna być następna logiczna zmiana w istniejącym kodzie.

To jest duża różnica.

Ghost text pomaga kończyć lokalny fragment. NES pomaga utrzymać ciąg zmian.

Dlaczego NES istnieje

Oficjalna dokumentacja trafnie opisuje problem: większość pracy programisty nie polega na pisaniu od zera, tylko na edytowaniu już istniejącego kodu.

A edycje rzadko występują w izolacji.

Zmieniasz nazwę pola i za chwilę trzeba poprawić użycia. Dodajesz parametr i potem trzeba go przepchnąć dalej. Naprawiasz jedną część warunku i nagle pojawiają się dwa kolejne miejsca do poprawki.

NES jest odpowiedzią właśnie na taki workflow.

Zamiast zostawiać Cię po pierwszym edycie, Copilot próbuje odgadnąć, co powinno wydarzyć się dalej.

Co dokładnie przewiduje NES

Najważniejsza różnica względem zwykłych podpowiedzi jest taka, że NES przewiduje dwie rzeczy naraz:

  • lokalizację kolejnego edytu
  • treść tej zmiany

To znaczy, że system nie tylko sugeruje kod. On również pokazuje, gdzie powinieneś pójść dalej.

W praktyce to daje inny rytm pracy:

  1. wykonujesz pierwszą zmianę
  2. Copilot wskazuje kolejne miejsce
  3. przechodzisz tam klawiszem Tab
  4. akceptujesz lub odrzucasz następną sugestię

To brzmi drobnie, ale przy zmianach rozsianych po pliku daje realny zysk. Odpada ręczne skakanie po referencjach i szukanie, co jeszcze trzeba poprawić.

Jak wygląda praca z NES w edytorze

Dokumentacja opisuje dwa podstawowe elementy interfejsu:

  • strzałkę w gutterze
  • nawigację i akceptację przez Tab

Strzałka mówi, że gdzieś względem bieżącej pozycji istnieje sugerowana kolejna zmiana. Możesz do niej przejść, a potem zaakceptować propozycję. Przy bardziej złożonych edytach NES potrafi zasugerować większy fragment zmian, nie tylko pojedynczy symbol.

To jest ważne, bo zmienia sposób poruszania się po pliku. Zamiast ręcznie polować na następne miejsce, podążasz za logicznym ciągiem edytów.

Gdzie NES sprawdza się najlepiej

Oficjalne use case’i są bardzo trafne i dobrze pokazują charakter tej funkcji.

1. Proste pomyłki

NES potrafi wychwycić literówki i mechaniczne błędy, na przykład złą nazwę słowa kluczowego albo oczywistą niespójność w zapisie.

To nie jest najbardziej spektakularny przypadek, ale bardzo praktyczny. W codziennej pracy takie drobne poprawki pojawiają się cały czas.

2. Błędy logiczne

Dokumentacja pokazuje też przykłady trudniejszych poprawek, na przykład odwróconej logiki warunku albo błędnego operatora.

To ważne, bo NES nie ogranicza się do kosmetyki. On próbuje rozpoznać wzorzec błędu i podpowiedzieć sensowną zmianę w kontekście kodu, a nie tylko na poziomie pojedynczych znaków.

3. Zmiana intencji

To jest jeden z najmocniejszych scenariuszy.

Zmieniasz klasę Point na Point3D, a Copilot zaczyna podpowiadać kolejne miejsca, gdzie trzeba dopisać z albo rozszerzyć obliczenia.

Tu najlepiej widać, że NES nie jest zwykłym kończeniem linii. To mechanizm śledzenia konsekwencji edytu.

4. Refaktoryzacja i dopinanie stylu

Jeśli zmienisz nazwę elementu albo wkleisz kod, który nie pasuje stylistycznie do otoczenia, NES może zasugerować kolejne kroki porządkujące.

I to jest bardzo cenne, bo część codziennej pracy to właśnie domykanie spójności po zmianie, a nie sama pierwsza edycja.

NES dobrze działa tylko wtedy, gdy zmiana ma czytelną logikę

To kluczowe ograniczenie, które warto zrozumieć od razu.

NES nie czyta Ci w myślach. On rozpoznaje wzorzec wynikający z aktualnej zmiany i z kontekstu pliku.

Dlatego najlepiej działa, gdy:

  • kod jest spójny
  • intencja zmiany jest czytelna
  • kolejne miejsca wynikają logicznie z pierwszego edytu

Jeżeli sam kod jest chaotyczny, nazwy są niespójne albo zmieniasz kilka rzeczy naraz bez wyraźnego wzorca, jakość NES spada.

To znów dobrze łączy się z wcześniejszą lekcją o kontekście. Lepszy lokalny porządek daje lepsze przewidywanie.

Ustawienia, które naprawdę mają znaczenie

Dokumentacja i settings reference wskazują kilka ustawień, które warto znać praktycznie, a nie tylko teoretycznie:

  • github.copilot.nextEditSuggestions.enabled włącza samą funkcję
  • github.copilot.nextEditSuggestions.fixes pozwala podpowiadać poprawki wynikające z diagnostyki, na przykład brakujących importów
  • editor.inlineSuggest.edits.showCollapsed ogranicza wizualny szum, pokazując większe zmiany dopiero przy przejściu do sugestii albo hoverze
  • editor.inlineSuggest.edits.renderSideBySide steruje tym, czy większe sugestie pokazują się obok, czy pod kodem
  • editor.inlineSuggest.edits.allowCodeShifting kontroluje, czy kod może zostać przesunięty, by wygodnie pokazać większą sugestię

To są ustawienia, które rzeczywiście wpływają na komfort pracy. Reszta często jest już bardziej kosmetyczna.

Kiedy NES pomaga, a kiedy przeszkadza

NES jest bardzo dobry wtedy, gdy masz serię powiązanych zmian w jednym pliku albo w lokalnym fragmencie kodu.

Sprawdza się przy:

  • refaktorach nazw
  • propagacji zmian w sygnaturach
  • dopinaniu brakujących konsekwencji po jednej edycji
  • prostych naprawach wynikających z diagnostyki

Może przeszkadzać, gdy:

  • pracujesz eksperymentalnie i sam jeszcze nie wiesz, jaki będzie kolejny krok
  • kod jest bardzo nieregularny
  • sugestie zasłaniają Ci widok i generują za dużo szumu wizualnego

W takich momentach nie trzeba NES traktować religijnie. Trzeba nim zarządzać.

Mój praktyczny filtr dla NES

Jeśli po pierwszej zmianie w głowie od razu pojawia Ci się myśl: “zaraz będę musiał poprawić jeszcze dwa albo trzy miejsca”, to zwykle jest dobry kandydat na NES.

Jeśli natomiast pracujesz bardziej eksploracyjnie i każda kolejna decyzja zależy od ręcznej oceny, to zwykłe suggestions albo chat bywają lepsze.

Ćwiczenie praktyczne

Zrób mały refaktor w jednym pliku:

  1. Zmień nazwę zmiennej, pola albo funkcji w jednym miejscu.
  2. Obserwuj, czy NES pokaże kolejne logiczne punkty edycji.
  3. Przejdź do nich klawiszem Tab i zdecyduj, które sugestie rzeczywiście przyspieszają pracę.
  4. Powtórz ćwiczenie z włączonym i wyłączonym showCollapsed.
  5. Jeśli masz w pliku squiggles, sprawdź też działanie github.copilot.nextEditSuggestions.fixes.

Po tym ćwiczeniu dobrze widać, że wartość NES nie polega na jednej efektownej sztuczce. Polega na redukowaniu kosztu przechodzenia przez ciąg powiązanych zmian.

Kluczowe wnioski

  • NES przewiduje nie tylko treść zmiany, ale też miejsce kolejnego edytu.
  • Najmocniej działa przy refaktorach, zmianie intencji i domykaniu konsekwencji jednej edycji.
  • To funkcja do pracy na istniejącym kodzie, nie do zwykłego dopisywania bieżącej linii.
  • Komfort pracy z NES mocno zależy od ustawień redukujących szum wizualny.
  • Dobrze uporządkowany lokalny kontekst daje dużo lepsze sugestie niż chaotyczny kod.

Co dalej

Skoro masz już dwa poziomy pracy inline, czas domknąć trzeci element: jak pisać i organizować kod tak, żeby te sugestie były trafniejsze od samego początku.