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

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12457
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 188 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.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:

eugene1287
Posts: 41
Joined: Sat 02 Oct, 2010 00:25

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

Post by eugene1287 » Fri 25 Apr, 2014 12:20

Latest post of the previous page:

как определить что элемент панели - папка?

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

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

Post by John Doe » Fri 25 Apr, 2014 12:22

Поискать в Энциклопедии не пробовали?

eugene1287
Posts: 41
Joined: Sat 02 Oct, 2010 00:25

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

Post by eugene1287 » Fri 25 Apr, 2014 12:24

Конечно, win.GetFileAttr. Но как с этим работать?

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

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

Post by John Doe » Fri 25 Apr, 2014 12:26

Нет, вам нужно искать среди функций panel.*
Или используйте Macro API, это ещё проще в использовании, см. FarEncyclopedia.ru.chm
Кстати в первом сообщении темы тоже есть полезная информация

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

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

Post by Shmuel » Fri 25 Apr, 2014 12:41

eugene1287 wrote:Конечно, win.GetFileAttr. Но как с этим работать?
А разве из описания не понятно? Что именно не понятно?

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

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

Post by John Doe » Fri 25 Apr, 2014 12:44

А как оно может быть понятно, если функция выбрана не та, что требуется

eugene1287
Posts: 41
Joined: Sat 02 Oct, 2010 00:25

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

Post by eugene1287 » Fri 25 Apr, 2014 12:48

непонятно, как из строки получить bool
panel.GetCurrentPanelItem? то же FileAttributes:string.
panel.fattr(panelType, panel.GetCurrentPanelItem(...).FileName) ?

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

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

Post by Shmuel » Fri 25 Apr, 2014 12:49

John Doe wrote:А как оно может быть понятно, если функция выбрана не та, что требуется
Какая функция требуется - невозможно понять без контекста.
win.GetFileAttr - вполне подходящая функция во многих контекстах.

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

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

Post by John Doe » Fri 25 Apr, 2014 12:49

Контекст был, работа с панелью

eugen1287
Macro API вам будет проще.

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

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

Post by Shmuel » Fri 25 Apr, 2014 12:50

if attr:find"d" then far.Message"it is directory" end

eugene1287
Posts: 41
Joined: Sat 02 Oct, 2010 00:25

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

Post by eugene1287 » Fri 25 Apr, 2014 13:36

Спасибо, теперь понятно!
Macro API, как я понимаю, только с текущим файлом может работать.

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

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

Post by John Doe » Fri 25 Apr, 2014 14:19

eugene1287 wrote:Macro API, как я понимаю, только с текущим файлом может работать.
Это не так.
Впрочем неважно, раз у вас всё получилось с плагиновым апи.

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

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

Post by John Doe » Mon 28 Apr, 2014 13:47

А зачем у нас band, bnot, bor, bxor, lshift, rshift дублируются в 3х местах?
Предлагаю удалить из таблицы mf.*

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

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

Post by Shmuel » Mon 28 Apr, 2014 14:03

Согласен, уберу.

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

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

Post by John Doe » Tue 13 May, 2014 09:17

При использовании Plugin.Call/SyncCall есть проблема, если вызываемый плагин пытается открыть панель.
Например RESearch:
Или старый FTP:

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

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

Post by Shmuel » Tue 13 May, 2014 09:24

RESearch или FTP не должны этого делать, будучи вызваны посредством Plugin.Call.
Согласно API, возвращаемое значение, отличное от 0, 1, -1 может быть интерпретировано как указатель на массив возвращаемых значений, а вовсе не как хэндл панели.

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

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

Post by John Doe » Tue 13 May, 2014 09:37

Shmuel wrote:RESearch или FTP не должны этого делать
Т.е. никак нельзя это решить? Кроме как вызывать плагины через Keys"F11 ..."?

Post Reply

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