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.
(Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел
Из обработчика EE_CHANGE невозможно вызвать editor.GetInfo.
Чтобы это обойти, можно было бы использовать ACTL_SYNCHRO, но LuaMacro не предоставляет такой возможности.
В качестве альтернативы, вместо ACTL_SYNCHRO можно использовать far.Timer, или mf.postmacro.
Оба способа работают (хотя непонятно какой интервал выбрать для far.Timer).
Хотелось бы всё-таки выяснить, какой из двух вариантов предпочтительнее использовать для задач, подобных моей.
Re: LuaMacro — Lua как язык макросов
Posted: Thu 24 Jul, 2014 18:57
by zg
John Doe wrote:Из обработчика EE_CHANGE невозможно вызвать editor.GetInfo.
EditorID приходит. что ещё нужно?
Хотелось бы всё-таки выяснить, какой из двух вариантов предпочтительнее использовать для задач, подобных моей.
задачу опишите поподробнее.
Re: LuaMacro — Lua как язык макросов
Posted: Thu 24 Jul, 2014 19:11
by John Doe
Задача: по хоткею позиционировать редактор к месту последней правки.
Решение:
Если использовать плагиновое апи (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:Если после этого в другом произвольном макрофайле в просессе загрузки будет ошибка (или например сработает какая-либо диалоговая функция), то наш код выполнится раньше окончания загрузки.