Next Edit Suggestion

Что такое «Next Edit Suggestion»? В посте тут я рассказывал про Code Completions, т.е. подсказки после каретки. Next Edit Suggestion — развитие этой идеи, когда ассистент подсказывает следующее вероятное редактирование в проекте (не обязательно даже в текущем файле). У данной фичи есть и другие названия:

Edit Prediction в Zed IDE ⁃ Supercompletion у Windsurf ⁃ Next Edit Suggestion у GitHub Copilot

Такую фичу можно реализовать в несколько шагов:

  • Шаг 1. Проверить, было ли только что редактирование?
  • Шаг 2. Если было -- запросить у LLM следующее вероятное редактирование.
  • Шаг 3. Вернуться к Шагу 1.

В презентации я рассмотрел стандартный пример: у нас есть класс Point с конструктором на два параметра (координаты x, y) и методом distanceTo, который вычисляет расстояние между точками. Пользователь хочет заменить 2D точки на 3D и делает следующее редактирование

‘’’diff --- a/src/example.ts +++ b/src/example.ts @@ -1,4 +1,4 @@ -class Point { +class Point3D { x: number; y: number; ‘’’

В презе я постарался подробно визуализировать алгоритм дальнейших действий для Next Edit Suggestion (ссылка на презу, тут не получается прикрепить файл).