Page 10 of 40

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: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 12 Jan, 2013 12:30
by Shmuel

Latest post of the previous page:

Tim Sobolev wrote:
Shmuel wrote:А можно попросить вас опубликовать этот макрос ?
Данный макрос наверняка был создан в версии >= 3054, и это всё объясняет.
Tim Sobolev wrote:Хотелось бы в каком-либо файле из .\Encyclopedia видеть описание размещения и формата всех типов поддерживаемых макросов.
Безусловно, это должно быть задокументировано (и не только это).

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

Posted: Wed 16 Jan, 2013 10:05
by Tim Sobolev
To install any of the provided .lua files just copy them to
%FARPROFILE%\Macros\scripts directory (or any of its subdirectories).
Ещё лучше было бы вынести это счастье в Far.ini, как сделано с профилями, или, ещё лучше, как с User Menu (указывается путь к глобальным, локальные, по-умолчанию, в профилях).

Мне, к примеру, было бы удобно держать всё в %FARHOME%\Scripts.

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

Posted: Sat 19 Jan, 2013 11:16
by SUSim
Модификаторы в макросах поменяли, это хорошо, а не стоит ли теперь поменять названия клавиш для единообразия в самом фаре?
Keys()
akey()
mf.key()

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

Posted: Sat 19 Jan, 2013 13:16
by Shmuel
SUSim wrote:а не стоит ли теперь поменять названия клавиш для единообразия в самом фаре?
Keys()
akey()
mf.key()
Наверное, стоит, только вот макросы у людей поломаются.

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

Posted: Sat 19 Jan, 2013 17:39
by Smitis
К слову пришлось - меня всё мучает вопрос, почему в mf все функции строчными буквами, а Keys с заглавной? ;)

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

Posted: Sat 19 Jan, 2013 17:56
by Shmuel
Smitis wrote:К слову пришлось - меня всё мучает вопрос, почему в mf все функции строчными буквами, а Keys с заглавной? ;)
Вы уже не первый, кто это спрашивает. :)
Никакого особого смысла в этом нет. Эта функция дважды переименовывалась, и вначале была только глобальной, то-есть не имела синонима в mf. В своё время (ещё до замены макроязыка на Lua) эта функция обсуждалась в форуме, там её так впервые назвали, и так оно и осталось.

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

Posted: Mon 21 Jan, 2013 17:36
by Smitis
Shmuel wrote:Никакого особого смысла в этом нет. Эта функция дважды переименовывалась, и вначале была только глобальной, то-есть не имела синонима в mf. В своё время (ещё до замены макроязыка на Lua) эта функция обсуждалась в форуме, там её так впервые назвали, и так оно и осталось.
А если навести порядок - все в mf строчными, а их копии в глобальных - с заглавных (Keys, Eval, Exit и пр.)? (Да, да, я знаю, некоторые макросы отвалятся :) ) Типа, рефакторинг так рефакторинг...

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

Posted: Wed 23 Jan, 2013 12:51
by John Doe
macroapi_manual.chm wrote:Far.Cfg.Get -> Far.Cfg_Get.
KeyBar.Show -> Far.KeyBar_Show
Window.Scroll -> Far.Window_Scrol
А давайте уберём подчёркивания. Как-то не принято в макроязыке.

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

Posted: Thu 24 Jan, 2013 11:57
by Smitis
И надо сделать mf.clip глобальным

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

Posted: Thu 24 Jan, 2013 12:27
by Aidar
Лучше сделать таблицу Clip с набором функций. А mf.clip -- в deprecated.

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

Posted: Sun 27 Jan, 2013 15:43
by SUSim
condition = function() return akey(1) end;

Code: Select all

╔═════════════════════ Исключительная ситуация ══════════════════════╗
║ Исключение:  Нарушение доступа (чтение из 0x0000001A)              ║
║ Адрес:       0x0054AAC8                                            ║
║ Функция:     OpenW                                                 ║
║ Модуль:      E:\FAR3_lua\Plugins\LuaMacro\LuaMacro.dll             ║
╟────────────────────────────────────────────────────────────────────╢
Поясню:
key="/[A-Z0-9,<ю>;:\'\"\[{\\]}`~_]/"; хватает много лишнего и хотелось отсечь небуквы следующим образом:
condition = function() return akey(1):find("[%w_]") end;

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

Posted: Sun 27 Jan, 2013 17:02
by Shmuel
build 3122 wrote:1. Функции 'akey' и 'mmode', будучи вызваны из функции 'condition' макроса, возвращают false.
Насчёт akey, возможно, нужно будет доработать, чтобы возвращалось в соответствии с нажатой клавишей (на мантис?).
Пока что только предотвращены падения.

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

Posted: Sun 27 Jan, 2013 17:29
by SUSim
Наверно, на мантис, если конечно клавиши как нибудь не доделать...

Вас не настораживает задание клавишь?
key="/[A-Z0-9,<ю>;:\'\"\[{\\]}`~_]/";

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

Posted: Sun 27 Jan, 2013 17:59
by Shmuel
SUSim wrote:Вас не настораживает задание клавишь?
key="/[A-Z0-9,<ю>;:\'\"\[{\\]}`~_]/";
Давайте без намёков, пожалуйста. Расскажите просто, что это такое.

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

Posted: Sun 27 Jan, 2013 18:53
by SUSim
Это просто русские буквы и цифры :) ну и американские тоже и ещё подчёркивание "_".
Особенно меня порадовала "ю" в этой последовательности (кстати почему её пришлось ввести? и почему только её?)
Shmuel, напрямую, это к вам не относится, это к фару с его неоднозначностями и многосущьностями...

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

Posted: Sun 27 Jan, 2013 19:05
by Shmuel
Да я и не воспринял на свой счёт...
По поводу 'ю', объясните, не понял. Это выражение никаким русским буквам, кроме 'ю', и не соответствует.
И вообще, нельзя ли без недомолвок? Чего вы хотите этим выражением достичь?