Yoficator
Ёфикатор (Yoficator) — макрос для расстановки буквы «ё» в редакторе Far Manager.
За основу взята программа
YO
Быстрый старт
Yoficator.zip — распакуйте в %FARPROFILE%\Macros\scripts\Yoficator\
YoDictionaries.zip — распакуйте в %FARPROFILE%\Dictionaries\
vutil.lua — положите в %FARPROFILE%\Macros\modules\
Перезагрузите Far Manager или дайте команду lm: load
Откройте в редакторе текстовый файл и нажмите Ctrl+Shift+T для запуска макроса.
Работа
Для запуска Ёфикатора нажмите Ctrl+Shift+T (сочетание клавиш можно изменить в настройках). Если курсор в слове, то работа начинается с этого слова. Если курсор не в слове, то с первого слова правее курсора.
Когда Yoficator не может решить, какая буква должна быть в слове — «е» или «ё», он:
- выделяет данное слово в редакторе;
- задаёт вопрос:
Code: Select all
╔══ Yoficator ══╗
║ 1 передохнем ║
║ 2 передохнём ║
║ 3 Всегда E ║
║ 4 Всегда Ё ║
╚═══════════════╝
Пример вопроса с подсказками:
Code: Select all
╔═══════ Yoficator ════════╗
║ 1 передохнем | умрём ║
║ 2 передохнём | отдохнём ║
║ 3 Всегда Е ║
║ 4 Всегда Ё ║
╚══════════════════════════╝
Выбрать слово с нужной буквой («е» или «ё») можно:
- курсором из меню и нажать Enter;
- клавишей 1, 2, 3 или 4;
Первым в списке всегда стоит слово с меньшим количеством букв «ё».
[Всегда Е] и [Всегда Ё]: до выхода из Ёфикатора в слове будет автоматически проставляться «е» или «ё».
Настройка
Настройка Ёфикатора осуществляется редактированием файла Yoficator.cfg («в формате» Lua).
Файл последовательно ищется в следующих местах:
- %FARLOCALPROFILE%
- %FARPROFILE%
- каталог макроса
Параметры
В квадратных скобках указаны значения параметров по умолчанию.
Key — клавиша запуска Ёфикатора [CtrlShiftT]
Интерфейс
ColorCode — когда Ёфикатор запрашивает пользователя о слове, он подсвечивает это слово указанным цветом. Если ForegroundColor = BackgroundColor = 0, то слово не раскрашивается, а выделяется [{Flags = bit64.bor(far.Flags.FCF_FG_4BIT,far.Flags.FCF_BG_4BIT), ForegroundColor = 0x0, BackgroundColor = 0xf}]
ColorPriority — приоритет раскраски, если она используется (слово раскрашивается, а не выделяется) [102]
LineNo — какой строкой экрана будет являться строка с проверяемым словом. Можно указать как абсолютное значение строки (например, 3 — третья строка экрана), так и смещение относительно размера экрана (например, 1/3 — на расстоянии 1/3 высоты экрана) [1/5]
CenterMenu — где будет расположено меню для выбора [false]:
- true — меню центрируется на экране;
- false — меню «прилепляется» к слову.
Indicator — как Ёфикатор будет отображать прогресс своей работы [2]:
- 0 — нет отображения, кроме случаев, когда требуется реакция пользователя;
- 1 — Title и перерисовка экрана при каждом изменяемом слове;
- 2 — Progress Bar.
Словари
Все словари должны быть в кодировке UTF-8. Пользовательские словари имеют приоритет.
YoDict — основной словарь [%FARPROFILE%\Dictionaries\YoDict.utf8]
YoDictU — основной пользовательский словарь [%FARPROFILE%\Dictionaries\YoDictU.utf8]
YoDictRegexp — словарь регулярных выражений [%FARPROFILE%\Dictionaries\yo_regexpr.utf8]
YoDictRegexp — пользовательский словарь регулярных выражений [%FARPROFILE%\Dictionaries\yo_regexprU.utf8]
WordsBufferLength — размер контекста для словаря регулярных выражений [5]. Для получения контекста Ёфикатор берёт WordsBufferLength/2 слева и справа от проверяемого. Т.е. параметр WordsBufferLength определяет количество слов контекста (проверяемое слово будет «посередине»).
Параметры работы
AlwaysConfirm — всегда подтверждать замену «е» <-> «ё» [false]:
- true — Макрос будет требовать подтверждения простановки буквы «ё» даже в словах, где она и должна быть, например, «её», «ещё» (кто-нибудь использует Ёфикатор с этим значением параметра?).
- false — в словах, где буква «ё» и должна быть (например, «её», «ещё») она будет проставлена автоматически без запроса.
Check — Проверять расстановку «ё» [true]:
- true — Ёфикатор будет проверять слова, в которых уже проставлена буква «ё».
- false — Ёфикатор не будет проверять слова, в которых уже проставлена буква «ё».
Словари
Основной словарь
Основной словарь — текстовый файл в кодировке UTF-8. это текстовый файл в кодировке UTF-8. Игнорируются пустые строки, а также строки с символом «#» в первой позиции.
В словаре, по одному слову в строке, перечислены слова с буквой «ё».
Варианты записи слов
Просто слово с буквой «ё»:
амёб
амёба
амёбам
амёбами
амёбах
амёбе
амёбой
амёбою
амёбу
амёбы
Если после слова (без пробела) стоит «?», то это значит, что слово может содержать, а может и не содержать букву «ё», например:
всё?
или:
все?
всё?
После вопросительного знака может быть один или более знаков табуляции, после которых идёт комментарий, разъясняющий употребление букв «е»/«ё»:
погружённый? в воду, в задумчивость, в сон
погруженный? на машину
В добавление к основному («стандартному») словарю можно использовать пользовательский словарь. Посльзовательский словарь имеет приоритет перед основным словарём.
Словарь регулярных выражений
Словарь регулярных выражений описывает некоторые контексты использования слов, в которых безусловно используются буквы «е» или «ё». Например, словосочетание «в чём» должно быть написано через «ё», а «не в чем» — через «е».
Контекст записывается с использованием регулярных выражений, например: «\d+ лет» («5 лет», «28 лет» и т.д. — не «лёт»), «\w+ой сестры» («больной сестры», «счастливой сестры» — не «сёстры»).
Работа словаря регулярных выражений не гарантируется, если часть фразы переносится на другую строку, наример: «счастливой\nсестры».
В добавление к основному («стандартному») словарю регулярных выражений можно использовать пользовательский словарь. Посльзовательский словарь имеет приоритет перед основным словарём.