# 2

Kai Willadsen
kai.willadsen@gmail.com 2012
Piotr Drąg
piotrdrag@gmail.com 2018-2023
Aviary.pl
community-poland@mozilla.org 2018-2023

# Filtrowanie tekstu

Podczas porównywania kilku plików mogą występować sekcje tekstu, w których różnice nie są zbyt ważne. Na przykład, można skupić się na zmienionych sekcjach kodu i ignorować wszelkie zmiany w komentarzach. Za pomocą filtrów tekstowych można ustawić Meld tak, aby ignorował tekst pasujący do wzoru (tzn. wyrażenia regularnego) podczas wyświetlania różnic między plikami.

Filtry tekstowe wpływają nie tylko na porównania plików, ale także porównania katalogów. Uwagi o filtrowaniu plików zawierają więcej informacji.

# Dodawanie i używanie filtrów tekstowych

Można włączać i wyłączać filtry tekstowe w karcie Filtry tekstowe okna Preferencji. Meld domyślnie zawiera kilka prostych filtrów, które mogą być przydatne, ale można także dodać swoje.

W programie Meld filtry tekstowe są wyrażeniami regularnymi, które są dopasowywane do tekstu porównywanych plików. Każdy dopasowany tekst jest ignorowany podczas porównania. Nadal będzie on widoczny w widoku porównania, ale nie będzie uwzględniany podczas wyszukiwania różnic. Filtry tekstowe są zastosowywane w kolejności, więc to możliwe, że pierwszy filtr usunie tekst, co spowoduje dopasowanie drugiego filtru, i tak dalej.

Strona o wyrażeniach regularnych języka Python zawiera informacje przydatne dla osób niezaznajomionych z wyrażeniami regularnymi (w języku angielskim).

# Jak napisać dobry filtr tekstowy

Łatwo jest napisać błędny filtr tekstowy, a ich obsługa w programie Meld jest niepełna. W szczególności należy pamiętać, że filtr tekstowy nie może zmienić liczby wierszy w pliku. Na przykład, jeśli włączono wbudowany filtr Komentarz skryptu i porównano te pliki:

## komentarz1.txt

`a b#komentarz c d`

## komentarz2.txt

`a b c #komentarz`

to wiersze zaczynające się od `b` zostałyby wyświetlane jako identyczne (komentarz został usunięty), ale wiersz `d` zostałby wyświetlony jako różny od wiersza komentarza po prawej. Dzieje się tak, ponieważ `#komentarz` jest usuwany z prawej strony, ale sam wiersz nie może zostać usunięty. Meld wyświetli wiersz `d` jako różny od tego, co widzi jako pusty wiersz po drugiej stronie.

# Puste wiersze i filtry

Opcja Ignorowanie zmian wstawiających lub usuwających puste wiersze w karcie Filtry tekstowe wymaga specjalnego wyjaśnienia. Włączenie tego specjalnego filtru spowoduje, że każda zmiana składająca się tylko z pustych wierszy jest całkowicie ignorowana. Może się tak stać, ponieważ wystąpiła zmiana niedrukowalnych znaków w tekście, ale może też się wydarzyć, jeśli włączone filtry tekstowe usunęły pozostałą treść zmiany, pozostawiając tylko puste wiersze.

Można użyć tej opcji, aby obejść pewne problemy i ograniczenia powstałe, ponieważ filtry nie mogą usuwać całych wierszy, ale może także być przydatna sama w sobie.