Добавление пунктов в меню плагинов
Как и стационарные макросы, добавочные пункты меню загружаются из Lua- и MoonScript-файлов, находящихся в папке %FARPROFILE%\Macros\scripts и её подпапках.
Загрузка пункта меню происходит при вызове глобальной функции MenuItem, которой передаётся один аргумент – таблица с параметрами. При успешной загрузке функция возвращает true.
MenuItem { description = "Menu item"; -- string (опциональное поле) menu = "Plugins Disks Config"; -- string area = "Shell Editor Viewer Dialog Menu"; -- string (опциональное поле) guid = "A435D567-AD64-4DD1-8C61-28CB90358817"; -- string text = function(menu,area) return "Hello!" end; -- string или function action = function(OpenFrom,Item) ...... end; -- function }
Поля description и area – опциональные. Их значения по умолчанию – пустая строка. Остальные поля – обязательные.
Поле
menuсодержит перечисление меню Far Manager, в которые нужно добавить данный пункт меню. Допустимые значения элементов:"Plugins","Disks"и"Config"– обозначают соответственно меню плагинов, меню дисков и меню конфигурации плагинов.Поле
areaсодержит перечисление областей, при вызове из которых меню плагинов нужно добавить данный пункт меню. Это поле используется только если полеmenuсодержит элементPlugins. Допустимые значения элементов совпадают с названиями макрообластей.Поле
guidсодержит уникальный идентификатор (GUID) данного пункта меню.Поле
text– если тип данного поля – строка, то она используется непосредственно как текст пункта меню.
Если тип данного поля – функция, то пункт меню будет добавлен только в случае, если эта функция возвратит строку.
Функция получает 2 аргумента:- menu – тип меню (
"Plugins"или"Disks"или"Config") - area – имя текущей макрообласти
- menu – тип меню (
Поле
action– функция, вызываемая при активации добавленного пункта меню. Получает те же аргументы, что и функцияexport.Open(см.luafar_manual.chm), за исключениемGuid. При вызове из меню конфигурации, значения обоих аргументов –nil. Возвращаемое значение игнорируется.