zg 30.09.2012 03:26:20 +0200 - build 2851
1. слияние с проектом Spring (https://github.com/shmuz/Spring).
в связи с этим вместо встроенного макроязыка используется скриптовый язык Lua 5.1 (http://www.lua.org).
после перехода на Lua: macroapi_manual.ru.chm.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
Если использовать плагиновое апи (ShiftF1), то выделение появляется не сразу после ECTL_SELECT, а только после окончания макроса.
Если использовать макро апи (ShiftF2), то выделение появляется сразу.
Вопрос: почему так и можно ли исправить? Update:
Надо было добавить editor.Redraw()
Нужен надёжный способ выполнить определённый код после загрузки всех макросов. flags="RunAfterFARStart"; подошёл бы, но он выполняется лишь после первой загрузки, тогда как требуется после каждой.
Варианты:
- определённый макрофайл загружать последним (как _macroinit.lua только наоборот).
- добавить специальное событие (LoadMacrosDone)
Re: LuaMacro — Lua как язык макросов
Posted: Thu 14 Aug, 2014 20:12
by Shmuel
А просто mf.postmacro в произвольном макрофайле не годится?
Re: LuaMacro — Lua как язык макросов
Posted: Thu 14 Aug, 2014 20:14
by John Doe
Если после этого в другом произвольном макрофайле в просессе загрузки будет ошибка (или например сработает какая-либо диалоговая функция), то наш код выполнится раньше окончания загрузки.
Re: LuaMacro — Lua как язык макросов
Posted: Thu 14 Aug, 2014 20:51
by Shmuel
John Doe wrote:Если после этого в другом произвольном макрофайле в просессе загрузки будет ошибка (или например сработает какая-либо диалоговая функция), то наш код выполнится раньше окончания загрузки.
mf.usermenu (mode, filename)
...
- mode может содержать бит 0x100, в этом случае функция возвращается
только по закрытии пользовательского меню (синхронный вызов).
lua:mf.usermenu(0x100)— и ничего не происходит
Re: LuaMacro — Lua как язык макросов
Posted: Sat 23 Aug, 2014 07:57
by Shmuel
John Doe wrote:lua:mf.usermenu(0x100)— и ничего не происходит
Исправлено.
LuaMacro — Lua как язык макросов
Posted: Tue 28 Oct, 2014 13:09
by John Doe
Сложно ли функциям akey и waitkey добавить возможность возвращать INPUT_RECORD?
Не скажу точно когда началось, но уже некоторое время наблюдаю неприятный эффект: каждое последующее выполнение far.MacroLoadAll() занимает всё больше времени.
Можно проверить таким скриптом:
local max = 50
far.Message(" ... ","","","")
for i=1,max do
local start = Far.UpTime
far.MacroLoadAll()
local delay = Far.UpTime-start
far.Message(i..":"..delay,"","","k")
--if delay<500 then win.Sleep(500 - delay) end
end
far.AdvControl"ACTL_REDRAWALL"
В результате время перезагрузки макросов может достигать абсолютно неприемлемых значений (даже не секунды, а десятки секунд)