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

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 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: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Latest post of the previous page:

John Doe wrote:Макросы, добавленные с помощью far.MacroAdd, работают с глобальным окружением. Баг?
Большое спасибо за репорт. Исправлено.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Если реализовывать тикет 2704 (а у меня есть готовый патч), то имеет смысл устанавливать окружение в функции AddRegularMacro.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:Если реализовывать тикет 2704 (а у меня есть готовый патч), то имеет смысл устанавливать окружение в функции AddRegularMacro.
Установка окружения может переехать туда во время рефакторингов.
Что касается 2704, вопрос весьма открытый и неоднозначный (просьба не обсуждать его здесь).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Курсор на папке "System Volume Information", из командной строки запускаю lua:Keys"Enter".
Запрос повышения привилегий выводится невидимым.
Хотелось бы как-то учитывать этот случай.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:Курсор на папке "System Volume Information", из командной строки запускаю lua:Keys"Enter".
Запрос повышения привилегий выводится невидимым.
Хотелось бы как-то учитывать этот случай.
Вы не ошиблись темой/разделом форума?
Мне кажется, это не макросистемы дело учитывать этот случай.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Вы не ошиблись темой/разделом форума?
Проблема конечно не в плагине, с этим не поспоришь.
Но вопрос касается макросистемы, и на мантисе я собираюсь отнести его к категории "Макросы". Разве нет?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:Но вопрос касается макросистемы, и на мантисе я собираюсь отнести его к категории "Макросы". Разве нет?
Достаточно в Фаре перед выводом этого диалога снять запрет перерисовки экрана.
Куда отнести? С макросами связано, конечно, но в первую очередь - с самим диалогом, который временно отключает макросистему.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

0002709
(К сожалению для запроса привилегий администратора не предусмотрен отдельный раздел)
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Shmuel wrote:
John Doe wrote:А для чего может понадобиться воссоздавать виртуальную машину?
Это примерно соответствует полной перезагрузке плагина. То-есть, начинаем с чистого листа.
В другой аппликации у меня это уже много лет, и практика показала, что пользуюсь.
Конкретные примеры - отладка при изменениях в самом плагине, замена lpeg.dll и т.д.
Сейчас после такой перезагрузки не выполняются макросы RunAfterFARStart, так и задумано?

И интересно, почему это сделано переменной, а не спецфункцией?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:Сейчас после такой перезагрузки не выполняются макросы RunAfterFARStart, так и задумано?

И интересно, почему это сделано переменной, а не спецфункцией?
1. RunAfterFARStart как бы ассоциировано со стартом Фара, а не плагина. Но вы заронили у меня сомнения.
2. Это ещё может измениться. Дело в том, что при вызове этой спецфункции никаких немедленных действий всё равно бы не производилось, разве что сохранение её параметров.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

build 3962
Windows XP x86

Удаляю файл дерева, запускаю lua:mmode(1,0) Keys "CtrlT Tab" far.Show(Area.Current)
Ожидаю что сообщение будет выведено после открытия дерева.
В реальности сразу выводится nil, и после закрытия сообщения сканирование дерева продолжается.
Что не так?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:build 3962
[......]
Что не так?
Не знаю, что не так, но в билде 3.0.2796 (до перехода на Lua) наблюдается аналогичное поведение.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

В билдах 3963+ (после mantis:002692) то же самое происходит с панелью QView, открытой для папки (заменить CtrlT на CtrlQ).
Вероятно корни проблемы общие.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Code: Select all

2. Возможность открытия редактора из диалога ошибки (пока только при загрузке
макросов, и то не во всех случаях).
Ошибки пока не репортить?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:

Code: Select all

2. Возможность открытия редактора из диалога ошибки (пока только при загрузке
макросов, и то не во всех случаях).
Ошибки пока не репортить?
Репортить.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

При наличии такого обработчика первый за сессию вызов RESearch с помощью Plugin.Call приводит к падению LuaMacro.

Code: Select all

lua:Plugin.Call("F250C12A-78E2-4ABC-A784-3FDD3156E415","Search")
Возможно связано с тем, что первый вызов RESearch долгий (может занимать почти секунду).
Attachments
CrashLogs.7z
(8.34 KiB) Downloaded 79 times
Post Reply

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