Безопасный рефакторинг
Veai может переименовывать символы, файлы и каталоги, перемещать файлы и каталоги, а также безопасно удалять сущности. Для этих операций агент использует механизмы рефакторинга IDE и обновляет найденные ссылки и импорты.
Когда полезно
- Переименовать класс, метод, поле, переменную или параметр во всём проекте.
- Переместить файл или каталог и сохранить корректные импорты и ссылки.
- Удалить файл, каталог или символ после проверки его использований.
- Привести названия сущностей к единому стилю при рефакторинге нескольких файлов.
Предварительные условия
- Откройте проект и дождитесь завершения индексации.
- Разрешите агенту изменять нужные файлы. Если используется Edit Scope, добавьте в него затрагиваемые каталоги.
- Укажите точные сущности и желаемый результат. Не объединяйте несвязанные операции в один запрос.
Пример: переименовать, переместить и удалить
На изображении агент переименовывает метод, перемещает файл с константами и удаляет файл трассировки.

- Откройте чат Veai и опишите каждое действие отдельным пунктом. Укажите текущее имя метода, целевой каталог для файла и путь к удаляемому файлу.
- Отправьте запрос. Агент найдёт объявления и использования указанных сущностей.
- Проверьте предварительный просмотр перемещения и удаления. В нём указаны цели операций и найденные конфликты.
- Если предварительный просмотр соответствует запросу, агент повторит те же операции в режиме применения.
- Проверьте карточки инструментов в чате. Они показывают перемещённый и удалённый файлы, а также старое и новое имя переименованного метода.
- Просмотрите итоговые изменения в Agent Changes и запустите подходящие тесты или сборку.
После успешного выполнения объявления, ссылки и импорты должны указывать на новые имена и пути. Удалённая сущность не должна оставлять обращений к несуществующему коду.
Как операции защищают проект
Переименование
Переименование обновляет объявления и использования символа. По умолчанию агент также учитывает связанные сущности, например класс с тем же именем, что и файл, тестовые классы, наследников, геттеры и сеттеры. Упоминания в комментариях и строках не изменяются автоматически.
Перемещение
Перед перемещением агент показывает, какие файлы будут перемещены, какие ссылки изменятся и есть ли конфликты. Применение выполняется только после предварительного просмотра той же операции. Коллизия имён, перемещение каталога в самого себя, выход за пределы проекта или файл только для чтения блокируют всю операцию.
Для двоичных файлов и других ресурсов, которые IDE не умеет рефакторить, Veai может выполнить обычное перемещение. В этом случае агент предупреждает, что ссылки на файл не проверялись.
Безопасное удаление
Перед удалением агент показывает цели, изменяемые файлы и найденные конфликты. Ссылка из кода, которая сломается после удаления, блокирует операцию. Упоминания в комментариях и строках отображаются в отчёте, но не блокируют её. Несколько целей удаляются как одна операция: при конфликте ничего из набора не удаляется.
Если операция не выполняется
- Дождитесь завершения индексации и повторите запрос, если агент сообщает, что IDE ещё индексирует проект.
- Устраните конфликт имён или выберите другой целевой каталог, если перемещение заблокировано.
- Удалите или измените найденные использования, если безопасное удаление сообщает о зависимостях.
- Повторите предварительный просмотр, если проект изменился после него.
- Уточните файл и строку объявления, если в одном файле есть несколько сущностей с одинаковым именем.