Ограничения в использовании некоторых функций
Следующие функции имеют особенности реализации, которые накладывают определённые ограничения на их использование в макросах:
exitmf.acallmf.AddExitHandlermf.usermenu(в “асинхронном” режиме вызова)KeysPlugin.CallPlugin.CommandPlugin.ConfigPlugin.Menuprint
Если макрос создаёт корутины с помощью
coroutine.wrap(f), то вышеперечисленные функции не будут работать, будучи вызванными из тела функцииf.
Данного ограничения нет, если корутины создаются с помощьюcoroutine.create(f).Вышеперечисленные функции, будучи вызванными прямо или косвенно посредством функции
pcall, приведут к немедленному возвратуpcallс результатомfalse.
Данного ограничения нет при использовании LuaJIT 2.x.Вышеперечисленные функции работают только, будучи вызванными из тела макроса (обычно это функция
action). Это значит, что данные функции не будут работать, будучи вызванными из:- диалоговых процедур
- функции condition макроса
- обработчиков событий
- и т.д. и т.п.
Ограничения пункта 3 не имеют места, если вышеперечисленные функции вызываются не напрямую,
а посредством mf.postmacro или far.MacroPost.