Porównywarka Tekstu | Porównaj Pliki i Podkreśl Różnice
Porównuj dwa teksty obok siebie i natychmiast zaznaczaj różnice. Idealne dla kodu.
Jak działa porównywarka tekstu
Porównywarka tekstu bierze dwa bloki tekstu, wersję oryginalną i zmienioną, i zaznacza dokładnie to, co zostało dodane, usunięte albo pozostało bez zmian między nimi. Obie wersje można wkleić bezpośrednio albo wczytać jako pliki, a narzędzie dopasowuje treść i podświetla każdą różnicę w miejscu, w którym występuje.
Jak działa porównanie
Narzędzie korzysta z algorytmu najdłuższego wspólnego podciągu: znajduje najdłuższy ciąg pasujących fragmentów wspólnych dla obu tekstów, a wszystko poza nim oznacza jako wstawienie albo usunięcie. Porównanie może działać na trzech poziomach szczegółowości: znak po znaku, słowo po słowie albo linia po linii. Tryb linii sprawdza się, gdy trzeba zobaczyć, które całe linie zmieniły się w dokumencie; tryb słów pasuje do przeredagowanego zdania; tryb znaków wychwytuje poprawkę pojedynczej literówki. Wyniki pokazywane są w dwóch kolumnach obok siebie (widok podzielony) albo połączone w jeden ciągły tekst z oznaczeniami w linii (widok scalony). Dodany tekst jest podkreślony na zielono, usunięty przekreślony na czerwono, a nad wynikiem widoczny jest licznik dodanych i usuniętych znaków, który aktualizuje się na bieżąco. Pliki można też wczytać bezpośrednio, w formatach .txt, .json, .js, .ts, .css, .html, .md, .yaml albo .xml, i są one porównywane tak samo jak wklejony tekst.
Przykład: przeredagowane zdanie
Oryginał: "Spotkanie zaczyna się o 10." Zmieniony: "Spotkanie zaczyna się o 10 w sali 9." W trybie słów tylko "w sali 9" zostaje oznaczone jako dodane, ponieważ wszystkie pozostałe słowa w zdaniu się zgadzają. Po przełączeniu tej samej pary na tryb znaków narzędzie zamiast tego oznacza litery i spację w "w sali 9" jako wstawienie na poziomie znaków, bo to tam jest najmniejsza porównywana jednostka.
Przykład: porównanie fragmentu JSON
Wczytanie albo wklejenie dwóch wersji pliku konfiguracyjnego działa tak samo. Plik oryginalny:
{
"port": 3500,
"debug": true
}
Plik zmieniony:
{
"port": 7500,
"debug": true,
"timeout": 12
}
W trybie linii linia z portem zostaje oznaczona jako zmieniona, bo 3500 zmieniło się na 7500, linia debug też zostaje oznaczona jako zmieniona, bo teraz kończy się przecinkiem, żeby zrobić miejsce na kolejne pole, a nowa linia "timeout": 12 zostaje oznaczona jako dodana. Tylko otwierający i zamykający nawias klamrowy pozostają bez zmian. Porównanie traktuje oba pliki jako zwykły tekst, a nie sparsowany JSON, więc zamiana miejscami tych samych dwóch kluczy bez zmiany wartości i tak pokazałaby się jako różnica.