# Edit

Виконує точну заміну рядка всередині наявного файлу. Це бажаний спосіб модифікації файлів, оскільки передається лише diff, що зберігає зміни точними та придатними для аудиту.

## Коли використовувати

- Виправлення помилки в одній функції без переписування всього навколишнього файлу
- Оновлення значення конфігурації, рядка версії чи шляху імпорту
- Перейменування символу по всьому файлу за допомогою `replace_all`
- Вставка блоку біля якоря (розширте `old_string`, щоб включити прилеглий контекст, а потім надайте заміну)
- Застосування невеликих, добре спрямованих правок як частини багатоетапного рефакторингу

## Параметри

- `file_path` (string, обовʼязковий): Абсолютний шлях до файлу для модифікації.
- `old_string` (string, обовʼязковий): Точний текст для пошуку. Має збігатися символ у символ, включно з пробілами та відступами.
- `new_string` (string, обовʼязковий): Текст заміни. Має відрізнятися від `old_string`.
- `replace_all` (boolean, необовʼязковий): Якщо `true`, замінює кожне входження `old_string`. За замовчуванням `false`, що вимагає унікального збігу.

## Приклади

### Приклад 1: Виправлення одного місця виклику
Встановіть `old_string` точним рядком `const port = 3000;` і `new_string` — `const port = process.env.PORT ?? 3000;`. Збіг унікальний, тому `replace_all` може залишатися за замовчуванням.

### Приклад 2: Перейменування символу по всьому файлу
Щоб перейменувати `getUser` на `fetchUser` скрізь у `api.ts`, встановіть `old_string: "getUser"`, `new_string: "fetchUser"` і `replace_all: true`.

### Приклад 3: Уточнення повторюваного фрагменту
Якщо `return null;` зʼявляється в кількох гілках, розширте `old_string`, щоб включити навколишній контекст (наприклад, попередній рядок `if`), щоб збіг став унікальним. Інакше інструмент видасть помилку замість здогадки.

## Примітки

- Ви повинні викликати `Read` для файлу принаймні один раз у поточній сесії, перш ніж `Edit` прийме зміни. Префікси з номерами рядків з виводу `Read` не є частиною вмісту файлу; не включайте їх у `old_string` чи `new_string`.
- Пробіли мають збігатися точно. Звертайте увагу на табуляції проти пробілів та пробіли в кінці, особливо в YAML, Makefiles і Python.
- Якщо `old_string` не унікальний і `replace_all` дорівнює `false`, редагування зазнає невдачі. Або розширте контекст, або увімкніть `replace_all`.
- Віддавайте перевагу `Edit` перед `Write`, коли файл уже існує; `Write` перезаписує весь файл і втрачає непов'язаний вміст, якщо ви не обережні.
- Для кількох непов'язаних правок в одному файлі видайте кілька викликів `Edit` послідовно, а не одну велику крихку заміну.
- Уникайте введення емодзі, маркетингових текстів або незапитаних блоків документації під час редагування файлів вихідного коду.
