LuaMacro — Lua как язык макросов

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

Проект Spring (обсуждение) влился в стабильную версию Far Manager 3.0.

Таким образом, в макросах сейчас доступны:
  • Стандартные функции и библиотеки Lua.
  • В фаре используется LuaJIT (обсуждение), что (в частности) даёт доступ к библиотеке FFI (обсуждение), и некоторые другие расширения.
  • "Надстройка" над Lua: MoonScript (Подробности и обсуждение)
  • Функции API плагинов, посредством библиотеки LuaFAR (см. luafar_manual.chm)
  • Функции старого макроязыка (API макросов) (Обновление)
    Актуальный мануал, отражающий после перехода на Lua: macroapi_manual.ru.chm.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

Latest post of the previous page:

John Doe wrote: которая у нас беспардонно переопределена.
Полагаю, что не беспардонно, а вполне осмысленно.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

Shmuel wrote:
John Doe wrote: которая у нас беспардонно переопределена.
Полагаю, что не беспардонно, а вполне осмысленно.
Будь моя воля, то я бы переосмыслил, т.к. из-за совпадения имени со штатной функцией lua нередко возникают проблемы.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

У меня - редко (даже не помню, когда было в последний раз).
Но дело не в этом: в процессе перехода на Lua приходилось принимать множество решений за относительно короткое время. Естественно, невозможно было в ста процентах случаев попадать в яблочко. А дальше уже менять что-либо стало затруднительно из-за обратной совместимости.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

Я взял себе за правило в макросах всегда использовать mf.print, на всякий случай.

И есть связанный вопрос, по следующему фрагменту из api.lua:

Code: Select all

_G.eval, _G.msgbox, _G.prompt = mf.eval, mf.msgbox, mf.prompt

mf.Keys, mf.exit, mf.print, mf.printf = _G.Keys, _G.exit, _G.print, _G.printf
Все 7 функций дублируются в mf и в _G.
Однако любопытно почему для eval,msgbox,prompt "первична" таблица _G, а для прочих — mf?

P.S.
Вопрос конечно отвлечённый, но не совсем, например функция printf использует _G.print, что будет иметь значение, пожелай я для каких-то целей переопределить _G.print
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote: Однако любопытно почему для eval,msgbox,prompt "первична" таблица _G, а для прочих — mf?
Просто сделано неединообразно, никакой причины другой не существует.
John Doe wrote: функция printf использует _G.print, что будет иметь значение, пожелай я для каких-то целей переопределить _G.print
Я бы printf выбросил, практика показывает, что ею никто не пользуется (и я тоже). Но кто знает, сейчас выбросишь, а завтра шум поднимется.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

Shmuel wrote: Но кто знает, сейчас выбросишь, а завтра шум поднимется.
Чем раньше выбросишь, тем меньше вероятность что кто-то успеет использовать.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LuaMacro — Lua как язык макросов

Post by sToLp »

John Doe wrote:я лишь предположил причину странного сообщения у sToLp
Это подтверждаю.

Однако и после деинсталляции StackTracePlus запуск macrotest.lua приводит к сообщению об
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote: Чем раньше выбросишь, тем меньше вероятность что кто-то успеет использовать.
Да скорее всего уже успели.
Но можно поставить её "на счётчик" на полгода, а в мануале пометить как deprecated.
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

sToLp wrote: Однако и после деинсталляции StackTracePlus запуск macrotest.lua приводит к сообщению об ошибке
Поскольку у вас это воспроизводится (а у меня нет), то вам и карты в руки для дальнейшего исследования.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

sToLp wrote: Однако и после деинсталляции StackTracePlus
StackTracePlus влиял только на то, что вместо вывода сообщения о реальной ошибке сам падал (пытаясь использовать функцию print).
Как починить StackTracePlus указано в его теме.
Shmuel wrote: Но можно поставить её "на счётчик" на полгода
Поддерживаю.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LuaMacro — Lua как язык макросов

Post by sToLp »

Восстановил StackTracePlus по инструкции в его теме.
После этого сообщение от macrotest.lua .
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

sToLp wrote:Восстановил StackTracePlus по инструкции в его теме.
После этого сообщение от macrotest.lua .
А, это уже ценная информация. Вероятно вы запускаете макротест, имея открытый редактор или вьювер.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LuaMacro — Lua как язык макросов

Post by sToLp »

Shmuel wrote:Вероятно вы запускаете макротест, имея открытый редактор или вьювер.
Да. Редактор.
А вот чисто .
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

LuaMacro — Lua как язык макросов

Post by Shmuel »

Ага, это уже macrotest надо править. Не учтено, что TypeName (имя типа окна) зависит от текущего языка, о чём упомянуто в Энциклопедии.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

LuaMacro — Lua как язык макросов

Post by sToLp »

Обновлённый macrotest выдаёт:

Code: Select all

╔══ LuaMacro ══╗
║ All tests OK ║
╟──────────────╢
║    { OK }    ║
╚══════════════╝
Спасибо!
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

LuaMacro — Lua как язык макросов

Post by John Doe »

Если ошибка возникает при загрузке макросов, то в сообщении не хватает traceback.

Update: http://bugs.farmanager.com/view.php?id=3013
Post Reply

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