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

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

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

Post by John Doe » Mon 16 Jul, 2012 13:44

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

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

User avatar
John Doe
Бюрократ
Posts: 12232
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by John Doe » Tue 25 Dec, 2012 10:22

Latest post of the previous page:

Вопрос: почему mf.waitkey приводит к перерисовке панели, независимо от режима DisableOutput?

Пример:

Code: Select all

lm:post Keys"CtrlO" win.Sleep(500) Keys"CtrlO"
При запуске мы не увидим моргания панелей, и это ожидаемо.

Но стоит добавить mf.waitkey, и моргание появляется:

Code: Select all

lm:post Keys"CtrlO" mf.waitkey(1) win.Sleep(500) Keys"CtrlO"

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Tue 25 Dec, 2012 11:00

John Doe wrote:Вопрос: почему mf.waitkey приводит к перерисовке панели, независимо от режима DisableOutput?
Причина известна, заключается в том, что на время вызова плагина LuaMacro Фар разрешает вывод на экран, для того, чтобы, в случае вызова far.Message, far.Menu, диалогов, они появились на экране. Как лечить - примерно ясно, пока руки не доходят. Если нетрудно - на мантис, отдельным тикетом.

User avatar
John Doe
Бюрократ
Posts: 12232
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by John Doe » Tue 25 Dec, 2012 11:12

http://bugs.farmanager.com/view.php?id=2235

P.S.
Задумался в какой проект постить: Far Manager или Plugins

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Tue 25 Dec, 2012 11:19

John Doe wrote:Задумался в какой проект постить: Far Manager или Plugins
Всё правильно, этим управляет Фар, а не плагин.

User avatar
John Doe
Бюрократ
Posts: 12232
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 32 times
Been thanked: 162 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by John Doe » Tue 25 Dec, 2012 11:23

В любом случае в плагинах нет раздела для LuaMacro

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Tue 25 Dec, 2012 14:41

Хотел бы посоветоваться по поводу локализации плагина LuaMacro. Вижу пока 2 варианта:
1. Как обычно для плагинов, т.е. lng-файлы в папке плагина.
2. Выделенная непрерывная секция в farlang.templ.m4, с доступом по приватному API.

User avatar
zg
zero-gravity
Posts: 5540
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 85 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg » Tue 25 Dec, 2012 14:46

Shmuel wrote:2. Выделенная непрерывная секция в farlang.templ.m4, с доступом по приватному API.
а в чем смысл?

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Tue 25 Dec, 2012 15:16

Смысл в том, что "локализаторщики" Фара одновременно локализуют и плагин LuaMacro, который функционально довольно тесно связан с Фаром. Иначе они будут забывать локализовать LuaMacro.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman » Sat 29 Dec, 2012 15:52

shmuel 29.12.2012 15:17:57 +0200 - build 3054
1. 'area' в описании макроса может включать несколько областей, разделённых пробелами/запятыми/точками с запятой.
2. 'key' в описании макроса может включать несколько ключей, разделённых пробелами.
Может, в 1. с одним разделителем будет лучше? (Пробел, раз в 2. пробел).

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Sat 29 Dec, 2012 16:00

NightRoman wrote:Может, в 1. с одним разделителем будет лучше? (Пробел, раз в 2. пробел).
Может быть, пусть ещё несколько человек выскажется.

User avatar
NightRoman
Posts: 5911
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 10 times
Been thanked: 11 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by NightRoman » Sat 29 Dec, 2012 16:16

Но если и не выскажутся, то и 1., и 2. должны пользовать единообразные разделители. Иначе странный дизайн какой-то. А вообще, какой резон для многих разделителей? Или почему не включен разделитель "|", который во флагах принят? Слишком разноцветно всё как-то получается.

User avatar
zg
zero-gravity
Posts: 5540
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 85 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by zg » Sat 29 Dec, 2012 16:18

я тоже за пробел.
NightRoman wrote:Или почему не включен разделитель "|", который во флагах принят?
и во флагах пробел.

User avatar
HaRT
Moderator
Posts: 8682
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 78 times
Been thanked: 145 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by HaRT » Sat 29 Dec, 2012 16:19

Мне тоже пробел милее — у него кнопка большая, легче нажимать. :)
Фар есть инструмент, а не нянька. © 2009 DrKnS

Shmuel
Posts: 5723
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 21 times
Been thanked: 203 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by Shmuel » Sat 29 Dec, 2012 16:42

Сделал только пробелы. Флаги трогать пока не стал, ибо у всех макросы поломаются.

Smitis
Posts: 1563
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 17 times
Been thanked: 32 times
Contact:

Re: Spring — внедрение Lua в качестве макроязыка

Post by Smitis » Sat 29 Dec, 2012 17:02

7. ОЧЕНЬ ВОЗМОЖНЫ НЕДОДЕЛКИ И БАГИ. Поэтому пользователям-не разработчикам лучше подождать пару недель, прежде чем переходить на новую версию.
Ну вот, будет развлечение на новогодние празники! :)
Разум когда-нибудь победит.

baldr
Posts: 16
Joined: Wed 07 Mar, 2012 11:10

Spring — внедрение Lua в качестве макроязыка

Post by baldr » Sat 29 Dec, 2012 17:15

Shmuel,

А можно ещё одну возможность? Если значение «action» — строка, то это аргумент для Keys().

Примечание модератора: http://forum.farmanager.com/viewtopic.php?f=15&t=8704

2useven10
Posts: 3786
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 4 times
Been thanked: 148 times

Re: Spring — внедрение Lua в качестве макроязыка

Post by 2useven10 » Sat 29 Dec, 2012 17:17

Сделал только пробелы. Флаги трогать пока не стал, ибо у всех макросы поломаются.
Пробелы у флагов, надеюсь работают.
Надо в доке написать, что везде пробелы, а для флагов | пока оставить работающим.
Честно говоря, | у флагов меня часто бесит, потому что по смыслу это чаще & :crazy:

Post Reply

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