Odfiltrování textu
Když porovnáváte několik souborů, můžete v nich mít části textu, ve kterých nejsou rozdíly důležité. Například se můžete chtít zaměřit na změny v části s kódem a ignorovat změny v řádcích s komentáři. Díky textovým filtrům stačí aplikaci Meld říci, aby při zobrazování rozdílů mezi soubory ignorovala text, který vyhovuje nějakému vzoru (tj. regulárnímu výrazu).
Textové filtry neovlivňují jen porovnání souborů, ale i porovnání složek. Více podrobností najdete v poznámkách k filtrování souborů.
Přidávání a používání textových filtrů
Textové filtry můžete zapínat a vypínat na kartě Filtry textu v dialogovém okně Předvolby. Meld má předdefinováno několik jednoduchých filtrů, které mohou být užitečné, a k tomu si můžete vytvořit své vlastní.
V aplikaci Meld nejsou textové filtry nic jiného, než regulární výrazy spouštěné vůči textu nebo souborům, které porovnáváte. Text, který regulárnímu výrazu vyhovuje, je během porovnávání ignorován. V zobrazení porovnání sice takovýto text stále uvidíte, ale nebude brán v úvahu při hledání rozdílů. Textové filtry se použijí v určeném pořadí, takže je možné, aby první filtr odebral text tak, aby zbytek vyhovoval druhému filtru atd.
Jestli nejste v regulárních výrazech zběhlí, můžete se podívat na JAK NA regulární výrazy v dokumentaci jazyka Python (odkazovaný text je v angličtině).
Aby textové filtry fungovaly správně
Udělat chybu v definici filtrování textu je lehké a podpora filtrování ze strany aplikace Meld také není úplně dodělaná. Jedním z problémů třeba je, že filtr nedokáže měnit počet řádků v souboru. Kupříkladu mějme zapnutý zabudovaný filtr Script comment a porovnejme následující soubory:
poznámky1.txt |
poznámky2.txt |
potom by řádky začínající b měly být zobrazeny jako shodné (komentář je zahozen), ale řádek d by měl být zobrazen jako lišící se od řádku s komentářem napravo. To je způsobeno tím, že na pravé straně je odstraněno #comment, ale řádek jako takový zůstává. Meld pak zobrazuje, že řádek d se liší od toho, co je na druhé straně zobrazeno, jako prázdný řádek.
Prázdné řádky a filtry
Předvolba Ignorovat změny, které přidávají nebo odstraňují prázdné řádky na kartě Filtry textu si vyžaduje vysvětlení. Když je tento speciální filtr zapnutý, pak jsou změny spočívající jen v prázdných řádcích zcela ignorovány. To může nastat, když byly současné bílé znaky v textu změněny, ale také když váš aktivní textový filtr odstranil ze změny všechen ostatní obsah a ponechal jen prázdné řádky.
Tuto volbu můžete použít k obejití některých problémů a omezení vyplývajících z toho, že filtry nejsou schopné odstraňovat celé řádky, ale může být užitečná i sama o sobě.