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

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

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.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:

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

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

Post by eugene1287 »

Latest post of the previous page:

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

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

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

Post by John Doe »

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

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

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

Post by eugene1287 »

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

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

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

Post by John Doe »

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

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

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

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

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

Post by John Doe »

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

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

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

Post by eugene1287 »

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

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

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

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

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

Post by John Doe »

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

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

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

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 »

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

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

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

Post by John Doe »

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

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

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

Post by John Doe »

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

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

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

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

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

Post by John Doe »

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

Shmuel
Posts: 5972
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

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

Post Reply

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