Руководство

Руководство по написанию правил для 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 компилирует словари в что-то более сжатое и удобное для обработки, причем обрабатываются спорные комбинации клавиш и на их основе создаются правила, таким образом чем полнее словарь, тем удачнее будет автоматическая смена раскладки.