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

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 14434
Joined: Wed 27 Apr, 2005 20:42
Location: github.com/FarManagerLegacy
Has thanked: 86 times
Been thanked: 486 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.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:
User avatar
phidel
Posts: 45
Joined: Wed 29 Jun, 2011 17:21
Has thanked: 19 times
Been thanked: 1 time

Ликбез по Lua

Post by phidel »

Latest post of the previous page:

Скажите пожалуйста, в чем разница между Editor и editor (в скриптах внутри far manager)?
User avatar
HaRT
Moderator
Posts: 11370
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 260 times
Been thanked: 407 times

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

Post by HaRT »

phidel wrote: Thu 03 Apr, 2025 01:52 в чем разница между Editor и editor (в скриптах внутри far manager)?
(Обратите внимание, я перенёс обсуждение в более подходящую тему.)
Конвенция такова, что в _G с заглавной таблицы из Macro API, а со строчной — из Plugin API. У них разное историческое происхождение и разные принципы формирования, они описываются отдельными CHM-файлами справки. Macro API более высокоуровневый, его легче применять, но многое с его помощью не получится сделать (по меньшей мере, сделать прилично); Plugin API более низкоуровневый, сложнее в применении, но и более мощный. Вроде бы есть ситуации, когда Plugin API доступен, а Macro API — нет. Если я в чём-то ошибся, пусть знатоки меня поправят.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4546
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 242 times
Been thanked: 672 times
Contact:

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

Post by buniak_a_h »

phidel wrote: Thu 03 Apr, 2025 01:52 Скажите пожалуйста, в чем разница между Editor и editor (в скриптах внутри far manager)?
Формально: это - две разные таблицы, каждая со своим набором функций и пропертей.
Вообще, регистрозависимость LUA - это песня! Есть panel и Panel, far и Far и т.д. Но самый кайф - в том, что у функций таблицы panel признак what panel 1=active_panel, 0=inactive_panel, а у функций/пропертей таблицы Panel - активной (panelType=0) или пассивной (panelType=1). Я пишу макросы довольно давно, но до сих пор не могу запомнить, приходится в мануал лазить. :evil:
Last edited by buniak_a_h on Thu 03 Apr, 2025 08:05, edited 1 time in total.
Shmuel
Posts: 7124
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 47 times
Been thanked: 611 times

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

Post by Shmuel »

HaRT wrote: Thu 03 Apr, 2025 02:26 Вроде бы есть ситуации, когда Plugin API доступен, а Macro API — нет.
  • LuaFAR Plugin API доступен напрямую всем LuaFAR плагинам.
  • MacroAPI доступен напрямую только плагину LuaMacro.
  • Любой плагин может пользоваться обоими API через "посредника" (API-функцию MacroControl).
И ещё некоторые функции MacroAPI (например, Keys) могут быть вызваны не отовсюду. Подробнее - в мануале MacroAPI.
Last edited by Shmuel on Thu 03 Apr, 2025 09:33, edited 6 times in total.
Shmuel
Posts: 7124
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 47 times
Been thanked: 611 times

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

Post by Shmuel »

К сведению макрописателей: mf.usermenu теперь работает также из Far, запущенного с ключами -e или -v.
Last edited by Shmuel on Fri 07 Nov, 2025 08:35, edited 2 times in total.
Post Reply

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