Руководство
Руководство по написанию правил для Pause BreakФайлы хранятся в профиле пользователя, в папке:
C:\Users\%username%\AppData\Roaming\krasnobaev.com\Pause Break\rules
в которую можно попасть из основного меню программы.
Файлы могут быть двух типов - правила и словари.
Правила
Файлы с списком правил имеют расширение .txt и открываются блокнотом. Программой они декодируется с использованием кодировки UTF-8. Из файла извлекаются операторы и значения, с определёнными условиями:
- В файле может быть сколько угодно строк и сколько угодно операторов.
- Оператор должен быть указан в самом начале строки, без отступов.
- У каждого оператора может быть одно или несколько вводных значений, они разделяются пробелом, символом табуляции и(или) символом переноса строки, одним или несколькими.
- Всё что указано с отступом, т.е. перед текстом стоит пробел или табуляция, считается значением для ранее указанного оператора.
- Символ ' (одинарная кавычка) поставленная в самом начале строки – исключает её из обработки, таким образом можно оставлять комментарии.
Значение для операторов в правилах приложения — это обычно произвольный текст. Значения разделяются пробелами, табуляцией или переносом строки и таким образом использования этих символов в самом значении возможно только при использовании псевдонимов [space], [enter], [tab].
Так же доступно использование двух двойных кавычек. ""Пример значения в двойных кавычках"" – в данной конструкции можно использовать пробел, так же \n \t – будут интерпретироваться как новая строка и табуляция соответственно. Такая конструкция может быть применена только в одной строке. Если вы хотите использовать две двойные кавычки в начале, не применяя выделение значения кавычками, тогда необходимо поставить обратный слеш вначале - \""
Оператор значение "" значение с пробелом"" ....
или
Оператор
значение1
значение2 значение3<
""значение с пробелом""
\""значение[space]с[space]кавычками[space]вначале
....
Операторы
to - оператор указывает в каких приложениях будут действовать нижестоящие правила название запускающего модуля (обычно название exe файла без расширения). и/или название класса объекта ввода. Думаю последнее будет не столь часто использоваться как первое.
По умолчанию для каждого файла с правилами стоит выбор для всех ( to * )
Например:
to devenv
edge /// '''
Для среды разработки Visual Studio будет дополнительная граница для смены раскладки по клавише pause/break
edge - определяет границу дальше которой не будет манятся раскладка при нажатии клавиши pause/break, например по умолчанию пробел и перенос строки являются такими
символами. Например:
edge /
Данное правило даст такой результат для текста pause/break => pause/икуфл
mask - при нажатии клавиши pause/break сравнивает введённый текст с маской, и если есть совпадение то меняет раскладку на следующую, не затрагивая статичные символы используемые в маске. Например:
mask "*"
Данное правило даст такой результат для текста "rfrjq nj ntrcn" => "какой то текст" (внимание на кавычки)
или
mask *!
Данное правило сменит раскладку всей строки, если в конце стоит восклицательный знак!
replace - при нажатии клавиши pause/break сравнивает введённый текст с нечетными данными и если есть совпадение то меняет данные на четные. Например:
replace <[!/]*> </[!/]*> </*> <*>
Будет менять <> на </> и наоборот при каждом нажатии на pause/break.
Обратите внимание, искомая информация и её замена должна быть в одной строке, т.е.
replace
<>
</>
Такое написание проигнорируется, и правило работать не будет.
replace
<> </>
А такое написание верное.
Автоматические функции
конечно это зло и программа собственно не для них придумывалась, но реализация этого функционала всё равно должна быть поскольку их можно грамотно настроить под себя и облегчить себе труд.
auto mask - сравнивает введённый текст с условиями маски, и как только он совпадает - меняет раскладку на предопределённую. Следует использовать с осторожностью.
Например:
auto mask ru "*"
По закрытию второй (и более) кавычки всё что было внутри становится напечатанным в русской раскладке
auto mask en [<Б]*[>Ю]
БыскшзеЮ изменит на <script>
auto replace - идентичен оператору replace за исключением того что
выполняется автоматически. Например:
auto replace [space], ,[space]
Будет постоянно ставить запятую, перед пробелом.
auto replace ["Э]["Э] "[ru]"
Если мы ввели ЭЭ превратятся в "" язык будет выбран Русский, каретка будет установлена между кавычками.
auto replace [~".*[а-я]$]Э "[en]
в [~....] прячется регулярное выражение которое проверяет что перед Э стоит маленькая буква на кириллице, и где то ранее есть кавычка, тогда меняет Э на " и меняет текущую раскладку на английскую.
auto switch - автоматически меняет раскладку при вводе текста на другой раскладке. (придумайте как это будет звучать правильнее) Например:
auto switch привет
Данное правило сменит раскладку на русскую (или доступную в которой есть кириллица с данными буквами) и перепечатает слово ghbdtn в привет автоматически. прям как старый добрый пунтосвичер. На самом деле это правило для другого (для чего наверое расскажу в следующем выпуске журнала), но работает оно весьма похоже, для автоматической смены раскладки лучше всего использовать следующий оператор -
auto dictionary - задаёт запись в словарь для автоматической смены раскладки, в отличии от предыдущего, не воспринимаются какие либо специальные символы, и работает на введённое слово целиком, то есть слово завершенное например пробелом(,. и т.д) в конце и вначале. Так же на этот оператор не распространяется действие оператора to, словари вне этого всего.
auto dictionary здравствуйте
Надо будет ввести plhfdcndeqnt и нажать наприимер ввод, тогда раскладка поменяется.
disable
На самом деле это даже несколько операторов, начинающихся на это слово.
disable to
Блокирует полностью работу программы в приложении, либо в элементе этого приложения. (последнее малоприменимо, но всё же есть)
disable to notepad
блокирует любую деятельность программы Pause Break в приложениии Блокнот, или любом другом приложении именем исполняемого файла которого будет "notepad"
disable auto
Блокирует любую автофункцию если ввод соответствует маске
disable auto [symbol][!symbol] [symbol][!symbol][symbol]
любая одиночная буква будет такой, никакие автоматические правила на неё не сработают.
disable auto dictionary
Отключает правило из словарей, такие правила программа создаёт автоматически, если после не нужной смены раскладки мы нажали клавишу Pause Break.
disable auto dictionary в
данное правило отменяет переключение на русскую раскладку при вводе единичной буквы d на, допустим, английской. Особенность этого правила в том что нельзя задать диапазон каких то значений, для этого служит disable auto, таким образом если ввести
disable auto dictionary в*
то такое правило просто не будет работать, если конечно же словари не составлены таким образом что при компиляции образуется такое правило.
disable [operator]
Отменяет действие оператора, собственно disable auto dictionary - это тоже вид данной конструкции. То есть отмена правила происходит в том случае если такое правило есть. Без обобщений. Для правил замены указывается только левая сторона.
to *
auto replace [enter][]"; ";[enter][en]
to chrome
disable auto replace [enter][]";
правило которое имитировало то что можно нажать ентер когда курсор не вконце строки а после него оставались символы "; для приложения хром работать не будет.
ещё пример:
to chrome
disable edge [space]
В приложении хром - при нажатии функциональной клавиши Pause Break поменяет раскладку не одно слово, а скорее всего строка целиком, возможно такое будет удобно в каком нибудь чате.
Словари
Файлы со словарями хранятся в той же папке в профиле пользователя. Словари имеют расширение .dict и не содержат операторов и прочего, просто список слов, и символы переноса строки, - строка - слово. Каждый файл может относится лишь к одной раскладке, если в словаре будут символы, печатаемые с разных раскладок, – он может и вообще не обработаться. Pause Break компилирует словари в что-то более сжатое и удобное для обработки, причем обрабатываются спорные комбинации клавиш и на их основе создаются правила, таким образом чем полнее словарь, тем удачнее будет автоматическая смена раскладки.