Следующие функции имеют особенности реализации, которые накладывают определённые ограничения на их использование в макросах:
mf.exit
mf.acall
mf.AddExitHandler
mf.usermenu
(в “асинхронном” режиме вызова)mf.Keys
Plugin.Call
Plugin.Command
Plugin.Config
Plugin.Menu
mf.print
Если макрос создаёт корутины с помощью coroutine.wrap(f)
, то вышеперечисленные функции не будут работать, будучи вызванными из тела функции f
.
Данного ограничения нет, если корутины создаются с помощью coroutine.create(f)
.
Вышеперечисленные функции, будучи вызванными прямо или косвенно посредством функции pcall
, приведут к немедленному возврату pcall
с результатом false
.
Данного ограничения нет при использовании LuaJIT 2.x.
Вышеперечисленные функции работают только, будучи вызванными из тела макроса (обычно это функция action
).
Это значит, что данные функции не будут работать, будучи вызванными из:
condition
макросаОграничения пункта 3 не имеют места, если вышеперечисленные функции вызываются не напрямую, а посредством mf.postmacro
или far.MacroPost
.