Сравнение текста
Сравните два блока текста построчно и увидьте, что именно было добавлено, удалено или осталось без изменений.
Как это работает
Сравнение выполняется на уровне строк на основе алгоритма наибольшей общей подпоследовательности (LCS) — той же логики, что лежит в основе git diff. Оба текста разбиваются на строки, а затем таблица динамического программирования вычисляет наибольший набор строк, которые обе версии разделяют по порядку. Обратный проход по этой таблице даёт те операции, которые вы видите: строки, существующие только в левом тексте, помечаются красным как удалённые, строки только в правом — зелёным как добавленные, а общие строки остаются нейтральными, каждая со своим исходным номером строки.
Сравнение на уровне строк — это осознанный компромисс. Посимвольные диффы могут показать, что внутри строки изменилось одно слово, но на реальных документах они вырождаются в конфетти: сотни крошечных фрагментов, которые читать сложнее, чем просто увидеть удалённую старую строку и добавленную новую. Построчный вывод остаётся читаемым и напрямую соответствует тому, как код-ревью и системы контроля версий представляют изменения. Два флажка настраивают, что значит «равно»: игнорировать пробелы схлопывает последовательности пробелов и обрезает концы строк перед сравнением (отлично для переформатированного кода), а игнорировать регистр приводит обе стороны к нижнему регистру. Отображаемые строки в любом случае сохраняют исходное форматирование.
Поскольку таблица динамического программирования требует памяти и времени, пропорциональных (строки в A) x (строки в B), инструмент ограничивает ввод 4000 строками на сторону; свыше этого одна только таблица содержала бы десятки миллионов ячеек, и вкладка бы зависала. В пределах лимита всё выполняется синхронно в вашем браузере: оба текста существуют только в вашей вкладке, при наборе не отправляется ни одного запроса (проверьте панель Network в DevTools), а конфиденциальные черновики или конфигурации никогда не касаются сервера.