Skip to main content

Безопасный рефакторинг

Veai может переименовывать символы, файлы и каталоги, перемещать файлы и каталоги, а также безопасно удалять сущности. Для этих операций агент использует механизмы рефакторинга IDE и обновляет найденные ссылки и импорты.

Когда полезно

  • Переименовать класс, метод, поле, переменную или параметр во всём проекте.
  • Переместить файл или каталог и сохранить корректные импорты и ссылки.
  • Удалить файл, каталог или символ после проверки его использований.
  • Привести названия сущностей к единому стилю при рефакторинге нескольких файлов.

Предварительные условия

  • Откройте проект и дождитесь завершения индексации.
  • Разрешите агенту изменять нужные файлы. Если используется Edit Scope, добавьте в него затрагиваемые каталоги.
  • Укажите точные сущности и желаемый результат. Не объединяйте несвязанные операции в один запрос.

Пример: переименовать, переместить и удалить

На изображении агент переименовывает метод, перемещает файл с константами и удаляет файл трассировки.

Переименование, перемещение и удаление через инструменты IDE

  1. Откройте чат Veai и опишите каждое действие отдельным пунктом. Укажите текущее имя метода, целевой каталог для файла и путь к удаляемому файлу.
  2. Отправьте запрос. Агент найдёт объявления и использования указанных сущностей.
  3. Проверьте предварительный просмотр перемещения и удаления. В нём указаны цели операций и найденные конфликты.
  4. Если предварительный просмотр соответствует запросу, агент повторит те же операции в режиме применения.
  5. Проверьте карточки инструментов в чате. Они показывают перемещённый и удалённый файлы, а также старое и новое имя переименованного метода.
  6. Просмотрите итоговые изменения в Agent Changes и запустите подходящие тесты или сборку.

После успешного выполнения объявления, ссылки и импорты должны указывать на новые имена и пути. Удалённая сущность не должна оставлять обращений к несуществующему коду.

Как операции защищают проект

Переименование

Переименование обновляет объявления и использования символа. По умолчанию агент также учитывает связанные сущности, например класс с тем же именем, что и файл, тестовые классы, наследников, геттеры и сеттеры. Упоминания в комментариях и строках не изменяются автоматически.

Перемещение

Перед перемещением агент показывает, какие файлы будут перемещены, какие ссылки изменятся и есть ли конфликты. Применение выполняется только после предварительного просмотра той же операции. Коллизия имён, перемещение каталога в самого себя, выход за пределы проекта или файл только для чтения блокируют всю операцию.

Для двоичных файлов и других ресурсов, которые IDE не умеет рефакторить, Veai может выполнить обычное перемещение. В этом случае агент предупреждает, что ссылки на файл не проверялись.

Безопасное удаление

Перед удалением агент показывает цели, изменяемые файлы и найденные конфликты. Ссылка из кода, которая сломается после удаления, блокирует операцию. Упоминания в комментариях и строках отображаются в отчёте, но не блокируют её. Несколько целей удаляются как одна операция: при конфликте ничего из набора не удаляется.

Если операция не выполняется

  • Дождитесь завершения индексации и повторите запрос, если агент сообщает, что IDE ещё индексирует проект.
  • Устраните конфликт имён или выберите другой целевой каталог, если перемещение заблокировано.
  • Удалите или измените найденные использования, если безопасное удаление сообщает о зависимостях.
  • Повторите предварительный просмотр, если проект изменился после него.
  • Уточните файл и строку объявления, если в одном файле есть несколько сущностей с одинаковым именем.

Связанные страницы