Технические подробности
Хранение макросов
Все макрокоманды хранятся в SQLite базе macros.db
Макрокоманды делятся на 17 областей действий (см. Области действия) и 2 области для хранения глобальных переменных и констант:
Область | Назначение |
---|---|
Shell |
Файловые панели |
Info |
Информационная панель |
QView |
Панель быстрого просмотра |
Tree |
Панель дерева папок |
Search |
Быстрый поиск в панелях |
FindFolder |
Панель поиска папок |
Viewer |
Внутренняя программа просмотра |
Editor |
Редактор |
Dialog |
Диалоги |
Menu |
Прочие меню |
MainMenu |
Основное меню |
UserMenu |
Пользовательское меню |
Disks |
Меню выбора диска |
Shell.AutoCompletion |
Список автодополнения в панелях |
Dialog.AutoCompletion |
Список автодополнения в диалогах |
Help |
Система помощи |
Other |
Режим копирования текста с экрана |
Common |
Макросы из этой области работают везде. Far Manager просматривает эту область последней. |
Vars |
Область для глобальных переменных, которые Far Manager считывает при старте. В эту область можно писать с помощью функции msave(). |
Consts |
Область для глобальных констант, которые Far Manager считывает при старте. |
Если Far Manager запущен с ключами /e или /v, то не грузятся макросы из следующих макрообластей: Shell
,
Info
, QView
, Tree
, Search
, FindFolder
,
MainMenu
, Disks
, Shell.AutoCompletion
, Dialog.AutoCompletion
.
На каждую макрокоманду в базе заводится отдельная запись со следующими полями:
Поле | Описание | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
area |
Имя макрообласти | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
key |
Назначенная клавиша | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
flags |
Флаги для макрополедовательности (перечисленные через символ '|'):
DisableOutput|Selection - не выводить на экран и если есть выделенные файлы/блок.
|
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
description |
Описание макроса | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
sequence |
Макропоследовательность |
При импорте каждая запись в XML-файле имеет вид:
<macro area="%AREA%" key="%KEY%" flags="%FLAGS%" description="%DESC%">%SEQUENCE%</macro>
В значениях area, key и description символы "<>&
должны быть заменены на " < > и &, соответственно.
Если макропоследовательность %SEQUENCE% содержит символы <>&
, то последовательность должна быть обрамлена в "скобки": <![CDATA[%SEQUENCE%]]>
Обязательными являются параметры area
и key
, остальные могут отсутствовать и принимать значение по умолчанию.
Если %SEQUENCE% отсутствует, то при импорте xml-файла макрос, заданный параметрами area
и key
будет удален из базы.
Последовательность "sequence
" содержит строковое представление макрокоманды. Каждая клавиша имеет свой строковый
эквивалент, разделителем клавиш является пробел, табуляция, или символы конца строки.
При старте Far Manager компилирует последовательность "sequence
" во внутренний байткод. Если в процессе компиляции обнаружена ошибка,
то макрос "отбрасывается".
Условия запуска макроса
Перед исполнением макроса Far Manager проверяет условия запуска в следующей последовательности:
NoSendKeysToPlugins
EmptyCommandLine
+NotEmptyCommandLine
NoFilePanels
+NoPluginPanels
NoFilePPanels
+NoPluginPPanels
NoFolders
+NoFiles
NoPFolders
+NoPFiles
- если не в
Viewer
,Editor
иDialog
:Selection
+NoSelection
PSelection
+NoPSelection
- если в
Viewer
,Editor
иDialog
:EVSelection
+NoEVSelection
Дополнительные параметры
Все дополнительные параметры хранятся в SQLite-базе generalconfig.db (key="KeyMacros").
Имя | Тип | Default | Описание |
---|---|---|---|
DateFormat |
TEXT |
%a %b %d %H:%M:%S %z %Y |
Формат вывода даты/времени по умолчанию (см. date()) |
CONVFMT |
TEXT |
%.6g |
Формат преобразования чисел (констант и переменных) с плавающей точкой в строку. |
KeyRecordCtrlDot |
TEXT |
Ctrl. |
Имя комбинации клавиш для записи макроса в общем режиме (см. "Запись макроса"). |
KeyRecordCtrlShiftDot |
TEXT |
CtrlShift. |
Имя комбинации клавиш для записи макроса в специальном режиме (см. "Запись макроса"). |