Page 23 of 36

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

Posted: Mon 16 Jul, 2012 13:44
by John Doe
Проект Spring (обсуждение) влился в стабильную версию Far Manager 3.0.

Таким образом, в макросах сейчас доступны:
  • Стандартные функции и библиотеки Lua.
  • В фаре используется LuaJIT (обсуждение), что (в частности) даёт доступ к библиотеке FFI (обсуждение).
  • "Надстройка" над Lua: MoonScript (Подробности и обсуждение)
  • Функции API плагинов, посредством библиотеки LuaFAR (см. luafar_manual.chm)
  • Функции старого макроязыка (API макросов) (Обновление)
    Актуальный мануал, отражающий после перехода на Lua: macroapi_manual.ru.chm.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:

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

Posted: Tue 03 Jun, 2014 12:08
by Amouse

Latest post of the previous page:

Подскажите, мне нужен плагин, только чтобы редактировать в Фаре код на луа, без переделки самого Фара. Такой есть?

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

Posted: Tue 03 Jun, 2014 12:24
by HaRT
Amouse wrote:Подскажите, мне нужен плагин, только чтобы редактировать в Фаре код на луа, без переделки самого Фара. Такой есть?
Что должен уметь делать этот плагин, чего не умеет делать ФАР в стандартной комплектации (при выборе всех штатных плагинов в инсталляторе)?

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

Posted: Sun 08 Jun, 2014 17:00
by AleXH
Вопросы:
1. В дистрибутив входит macrotest.lua, а в нём такие функции - что в них делают абсолютные пути, смотрящие непонятно куда?

2. При наличии нескольких макросов на одной клавише, по нажатию на эту клавишу выдаётся список этих макросов. Если после этого нажать "Esc", то видим неуместное

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

Posted: Sun 08 Jun, 2014 17:20
by Shmuel
1. Разбирайтесь в энциклопедии с этими ф-циями.
2. Это сломалось во время последнего большого рефакторинга. Ещё в 3929 работало. Спасибо за репорт!

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

Posted: Sat 14 Jun, 2014 10:30
by Shmuel
John Doe wrote:
Shmuel wrote:приходится выбирать более важные/интересные моменты для реализации.
Было бы интересно узнать, что уже намечено к реализации!
Список приводить не буду, иначе замучаюсь отвечать на вопросы.

Возможные нововведения тоже лучше не озвучивать, может привести к преждевременным дискуссиям.
Хотя с другой стороны, по билду 366 LuaMacro, к моему удивлению, не поступило ни одного вопроса.

Грубо говоря, половина релевантных тикетов на Мантисе (со второй половиной я не согласен).

Рефакторинги - иначе код нельзя развивать, и он выходит из-под контроля.
Иногда бывает, что 8 часов что-то делаешь, потом приходится откатывать.

LuaFAR.

Документация.
Просил одного товарища в своё время перевести macroapi_manual на английский, но закончилось тем, что пришлось самому. Ну да ладно.

P.S. Добавлю, что на свои плагины, с тех пор, как я в Far Group, времени практически нет.

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

Posted: Sat 14 Jun, 2014 11:07
by John Doe
Shmuel wrote: Хотя с другой стороны, по билду 366 LuaMacro, к моему удивлению, не поступило ни одного вопроса.
А для чего может понадобиться воссоздавать виртуальную машину?

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

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

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

Posted: Mon 16 Jun, 2014 11:11
by John Doe
Макросы, добавленные с помощью far.MacroAdd, работают с глобальным окружением. Баг?

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

Posted: Mon 16 Jun, 2014 11:44
by Shmuel
John Doe wrote:Макросы, добавленные с помощью far.MacroAdd, работают с глобальным окружением. Баг?
Большое спасибо за репорт. Исправлено.

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

Posted: Mon 16 Jun, 2014 12:14
by John Doe
Если реализовывать тикет 2704 (а у меня есть готовый патч), то имеет смысл устанавливать окружение в функции AddRegularMacro.

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

Posted: Mon 16 Jun, 2014 12:49
by Shmuel
John Doe wrote:Если реализовывать тикет 2704 (а у меня есть готовый патч), то имеет смысл устанавливать окружение в функции AddRegularMacro.
Установка окружения может переехать туда во время рефакторингов.
Что касается 2704, вопрос весьма открытый и неоднозначный (просьба не обсуждать его здесь).

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

Posted: Mon 16 Jun, 2014 16:43
by John Doe
Курсор на папке "System Volume Information", из командной строки запускаю lua:Keys"Enter".
Запрос повышения привилегий выводится невидимым.
Хотелось бы как-то учитывать этот случай.

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

Posted: Mon 16 Jun, 2014 17:01
by Shmuel
John Doe wrote:Курсор на папке "System Volume Information", из командной строки запускаю lua:Keys"Enter".
Запрос повышения привилегий выводится невидимым.
Хотелось бы как-то учитывать этот случай.
Вы не ошиблись темой/разделом форума?
Мне кажется, это не макросистемы дело учитывать этот случай.

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

Posted: Mon 16 Jun, 2014 17:25
by John Doe
Вы не ошиблись темой/разделом форума?
Проблема конечно не в плагине, с этим не поспоришь.
Но вопрос касается макросистемы, и на мантисе я собираюсь отнести его к категории "Макросы". Разве нет?

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

Posted: Mon 16 Jun, 2014 17:39
by Shmuel
John Doe wrote:Но вопрос касается макросистемы, и на мантисе я собираюсь отнести его к категории "Макросы". Разве нет?
Достаточно в Фаре перед выводом этого диалога снять запрет перерисовки экрана.
Куда отнести? С макросами связано, конечно, но в первую очередь - с самим диалогом, который временно отключает макросистему.

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

Posted: Mon 16 Jun, 2014 20:19
by John Doe
0002709
(К сожалению для запроса привилегий администратора не предусмотрен отдельный раздел)

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

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

И интересно, почему это сделано переменной, а не спецфункцией?