Page 3 of 3
_macroinit.lua vs RunAfterFARStart
Posted: Thu 25 Aug, 2016 14:11
by gotar
Latest post of the previous page:
SUSim wrote:требовать от пользователя править какие-то файлы не хорошо.
. Скопировать файл с макросом и скопировать файл в котором стоит вызов функции - одинаковая трудоемкость. Из предыдущего обсуждения у меня сложилось впечатление, что автостартующий макрос - это такой вычурный способ вызов функции из файла в каталоге macros/scripts. Единственное преимущество автостартующего скрипта перед вызовом функции - это возможность не вызывать функцию, если фар вызван как редактор текстов. И то если информацию о режиме работы фара вытащат в LuaFar API, это преимущество пропадет. RunAfterFARStart надо оставить только из соображений совместимости. Реальной пользы от него я так и не увидел.
_macroinit.lua vs RunAfterFARStart
Posted: Thu 25 Aug, 2016 19:08
by Smitis
gotar wrote:Из предыдущего обсуждения у меня сложилось впечатление, что автостартующий макрос - это такой вычурный способ вызов функции из файла в каталоге macros/scripts.
Автостартующий макрос - макрос автоматически выполняемый при запуске ФАРа. Может использоваться и как обычный макрос. В стародавние времена до lua это был единственный способ что-то выполнить при запуске ФАРа. Судя по дате регистрации, Вы эти времена должны были застать.
_macroinit.lua vs RunAfterFARStart
Posted: Fri 26 Aug, 2016 08:41
by gotar
В начале этой темы я спросил есть ли отличия между вызовом функции вне макроса из файла в каталоге макросов. и автостартующим макросом. Мне оба самых больших знатоков макросов подтвердили, что разницы нет, за исключением того, что макрос будет вызван один раз, а функция будет выполнятся при каждом lm:load
. Я что-то упустил?
_macroinit.lua vs RunAfterFARStart
Posted: Fri 26 Aug, 2016 09:02
by John Doe
gotar wrote: Я что-то упустил?
Надо учитывать, что скрипты исполняются раньше (по мере их загрузки), а автостартующие макросы уже после загрузки, все скопом.
John Doe wrote: Ещё одна потенциально возможная причина использования макроса вместо простого вызова - это необходимость преодоления
Ограничений в использовании некоторых функций (см. мануал)
Разумеется это ограничение можно обойти без RunAfterFARStart, используя mf.postmacro.
RunAfterFARStart может быть удобно использовать если некий код требуется выполнять и при старте, и по шорткату.
Хотя и тут можно обойтись без RunAfterFARStart, просто используя общую функцию.
Плюс то о чём написал SUSim: в фаре испокон веков есть механизм записи макросов с клавиатуры, не вникая в особенности организации скриптов, и флаг RunAfterFARStart тут уместен.