![](far.png)
Режим замены с сохранением стиля
В редакторе режим замены Сохранять стиль позволяет осуществлять замену с сохранением регистра заменяемого текста и/или стиля его написания для файлов исходных текстов. Например, при замене в этом режиме во фразе "Tu be or not tu be" слова "tu" на слово "to" будет получен результат: "To be or not to be" (обратите внимание на регистр). Аналогично, при замене "UserName" на "PersonLogin" в следующем фрагменте:
будет получен результат:
Обратите внимание, что замена сохранила стиль именования идентификаторов для всех вхождений.
Замена с сохранением стиля использует следующий алгоритм:
- Образец и результат замены разбиваются на части, используя символы _ - . в
качестве разделителей, кроме того разделением считается изменение регистра
буквы со строчного на прописной. Разбиение осуществляется только по одному из
вариантов: если существует неоднозначность в выборе правила, то данная строка
считается одной частью. Например, строки "testMe", "WhatIsIt", "far-manager",
"USER_FIRST_NAME" будут разбиты на части (две, три, две и три части
соответственно), а строки «test_userName”, “one.two-three” разбиты не будут
(останутся одной частью). Все получившиеся части образца и результата
замены не пусты (кроме тривиальных случаев пустых строк в качестве образца
и/или текста замены).
- Осуществляется проход по тексту и поиск таких подстрок, которые при разбиении
на части в соответствии с пунктом 1 дают в точности те же части, что и образец
(при сравнении частей регистр игнорируется).
- Для всех частей найденной подстроки вычисляется набор правил форматирования,
под которые он подходит. Возможные варианты: "всё прописными", "всё строчными",
"первая заглавная, затем всё строчными", "произвольный формат". Вариант
"произвольный формат" добавляется в набор в любом случае. Для первой части подстроки
набор сохраняется как есть, а остальные наборы (для всех частей кроме первой)
пересекаются как множества.
- Набор частей результата замены преобразуется так, что первая часть форматируется
в соответствии с самым сильным из правил в наборе правил первой части строки,
а остальные - в соответствии с самым сильным из правил в найденном пересечении правил.
- Набор частей замены соединяется в с сохранением того разделителя, которым разделены
части обрабатываемой подстроки. Результат записывается на место подстроки.
- Если таким способом не получилось сделать ни одной замены, то осуществляется поиск-замена стандартным способом. При замене, если и в образце и в заменяемом тексте первый символ – буква, то регистр этой буквы сохраняется (то есть приводится к регистру первой буквы заменяемой подстроки).
Far Manager © 1996—2000 Eugene Roshal, © 2000—2015 Far Group