Фільтрування тексту

При порівнянні декількох файлів можуть трапитися частини тексту, де відмінності не є насправді суттєвими. Наприклад, ви хочете зосередитися на змінених фрагментах коду і проігнорувати усі зміни у коментарях. За допомогою текстових фільтрів ви можете наказати Meld під час показу відмінностей між файлами ігнорувати текст, який відповідає певному взірцю (тобто формальному виразу).

Текстові фільтри застосовуються не лише для порівняння файлів, але і до порівняння тек. Ознайомтеся із нотатками щодо фільтрування файлів, щоб дізнатися більше.

Додавання і використання фільтрування тексту

Ви можете увімкнути або вимкнути текстові фільтри за допомогою вкладки Текстові фільтри діалогового вікна Параметри. Meld постачається із декількома простими фільтрами, які можуть стати вам у пригоді, але ви можете додати і власні фільтри.

У Meld текстові фільтри є формальними виразами, які при порівнянні буде застосовано до тексту файлів. Будь-які фрагменти тексту, які буде визнано відповідними, буде проігноровано під час порівняння; текст буде показано на панелях перегляду порівняння, але він не братиметься до уваги при пошуку відмінностей. Текстові фільтри буде застосовано у вказаному порядку, тому можлива ситуація, коли застосування першого фільтра вилучатиме текст, який робить можливим встановлення відповідності другому фільтру, тощо.

Якщо ви не дуже знайомі із синтаксисом формальних виразів, вам варто ознайомитися з настановими щодо формальних виразів у Python.

Правильне використання текстових фільтрів

Доволі ймовірною є ситуація, коли текстове фільтрування працюватиме не так, як слід, а підтримка фільтрування у Meld не є повною. Зокрема, текстовий фільтр не може змінювати кількість рядків у файлі. Наприклад, якщо увімкнено вбудований фільтр Коментарі у скриптах і виконано порівняння таких файлів:

comment1.txt

a
b#коментар
c
d

comment2.txt

a
b
c
#коментар

рядки, які починаються з b буде показано як ідентичні (коментар буде вилучено), але рядок d буде показано як різний до рядка коментаря праворуч. Причиною цього є те, що #коментар буде вилучено з правої частини, але сам рядок вилучень не буде; Meld покаже рядок d як відмінний від того, який буде показано як порожній рядок на іншій панелі файлів.

Порожні рядки і фільтрування

Пункт Ігнорувати зміни, які вставляють або вилучають порожні рядки на вкладці Текстові фільтри потребує особливого пояснення. Якщо увімкнено цей особливий фільтр, будь-які зміни, які складаються лише з порожніх рядків, буде повністю проігноровано. Таке може статися через справжні відмінності у пробілах у тексті, але також може трапитися, якщо вашими активними текстовими фільтрами було вилучено усі інші дані зі зміни після чого, лишилися лише порожні рядки.

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