_macroinit.lua vs RunAfterFARStart

Здесь обсуждается всё, что касается макросов.
gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

_macroinit.lua vs RunAfterFARStart

Post by gotar » Thu 25 Aug, 2016 14:11

Latest post of the previous page:

SUSim wrote:требовать от пользователя править какие-то файлы не хорошо.
. Скопировать файл с макросом и скопировать файл в котором стоит вызов функции - одинаковая трудоемкость. Из предыдущего обсуждения у меня сложилось впечатление, что автостартующий макрос - это такой вычурный способ вызов функции из файла в каталоге macros/scripts. Единственное преимущество автостартующего скрипта перед вызовом функции - это возможность не вызывать функцию, если фар вызван как редактор текстов. И то если информацию о режиме работы фара вытащат в LuaFar API, это преимущество пропадет. RunAfterFARStart надо оставить только из соображений совместимости. Реальной пользы от него я так и не увидел.

Smitis
Posts: 1455
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 13 times
Been thanked: 23 times
Contact:

_macroinit.lua vs RunAfterFARStart

Post by Smitis » Thu 25 Aug, 2016 19:08

gotar wrote:Из предыдущего обсуждения у меня сложилось впечатление, что автостартующий макрос - это такой вычурный способ вызов функции из файла в каталоге macros/scripts.
Автостартующий макрос - макрос автоматически выполняемый при запуске ФАРа. Может использоваться и как обычный макрос. В стародавние времена до lua это был единственный способ что-то выполнить при запуске ФАРа. Судя по дате регистрации, Вы эти времена должны были застать.
Разум когда-нибудь победит.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

_macroinit.lua vs RunAfterFARStart

Post by gotar » Fri 26 Aug, 2016 08:41

В начале этой темы я спросил есть ли отличия между вызовом функции вне макроса из файла в каталоге макросов. и автостартующим макросом. Мне оба самых больших знатоков макросов подтвердили, что разницы нет, за исключением того, что макрос будет вызван один раз, а функция будет выполнятся при каждом lm:load. Я что-то упустил?

User avatar
John Doe
Бюрократ
Posts: 11132
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 12 times
Been thanked: 72 times

_macroinit.lua vs RunAfterFARStart

Post by John Doe » Fri 26 Aug, 2016 09:02

gotar wrote: Я что-то упустил?
Надо учитывать, что скрипты исполняются раньше (по мере их загрузки), а автостартующие макросы уже после загрузки, все скопом.
John Doe wrote: Ещё одна потенциально возможная причина использования макроса вместо простого вызова - это необходимость преодоления
Ограничений в использовании некоторых функций (см. мануал)
Разумеется это ограничение можно обойти без RunAfterFARStart, используя mf.postmacro.

RunAfterFARStart может быть удобно использовать если некий код требуется выполнять и при старте, и по шорткату.
Хотя и тут можно обойтись без RunAfterFARStart, просто используя общую функцию.

Плюс то о чём написал SUSim: в фаре испокон веков есть механизм записи макросов с клавиатуры, не вникая в особенности организации скриптов, и флаг RunAfterFARStart тут уместен.

Post Reply

Return to “Обсуждение макросов”