LuaFAR — библиотека для создания плагинов на языке Lua

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

LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

Библиотека LuaFAR делает возможным написание плагинов на языке Lua, предоставляя им адаптированную версию FAR API.

Входит в состав FAR manager (начиная с 3.0 build 2851), и доступна для использования в макросах.

Справка по функциям библиотеки — luafar_manual.chm (в дистрибутиве, папка Encyclopedia).
Мануал весьма лаконичен, предполагает что вы ориентируетесь в FAR Plugins API (FarEncyclopedia.ru.chm, в дистрибутиве)

Дополнения к мануалу:

Полезное по теме: См. также:
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Latest post of the previous page:

John Doe wrote:Именно поэтому и предложил.
Пример: [....]
Функция-каллбак вызывается многократно. Какой смысл использовать именно возвращаемое значение её последнего вызова?
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

Она вызывается до тех пор, пока не вернёт true
Т.е. вызовов может быть несколько, но не может быть более 1 значения, т.к. именно оно является сигналом к прекращению поиска.
If UserFunc returns true then the search is stopped.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

John Doe wrote:Она вызывается до тех пор, пока не вернёт true
Т.е. вызовов может быть несколько, но не может быть более 1 значения, т.к. именно оно является сигналом к прекращению поиска.
Что ж, логика в этом есть. В таком случае, можно возвращать и несколько значений.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Smitis »

А есть какие-нибудь примеры панельных lua-плагинов?
Разум когда-нибудь победит.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

С открытым кодом пока нет, вроде.
Я у себя все последние годы пользую LF TmpPanel, но не публикую, так как код сильно мне не нравится. Этот же код используется в плагине LF Search.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

TmpPanel это интересно. А без кода не покажете?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Пока не хочу отвлекаться. Сделайте поиск файлов в LF Search, результаты помещаются на его временную панель.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Smitis »

Shmuel wrote:Я у себя все последние годы пользую LF TmpPanel, но не публикую, так как код сильно мне не нравится. Этот же код используется в плагине LF Search.
Но LF Search вроде как не "generic plugin" (хотя использует Lua)?

Я взял за основу LuaMacro.dll, как описывалось парой страниц назад... Пытаюсь сделать панельный плагин. Но очень мало информации. Приходится действовать методом "тыка".
Разум когда-нибудь победит.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Smitis wrote:Но LF Search вроде как не "generic plugin" (хотя использует Lua)?

Я взял за основу LuaMacro.dll, как описывалось парой страниц назад... Пытаюсь сделать панельный плагин. Но очень мало информации. Приходится действовать методом "тыка".
1. lfsearch_e.dll - он generic, но содержит внутри Lua-код, так что для экспериментов не подойдёт.

2. LuaMacro.dll из дистрибутива Фара как основа панельного плагина не годится. Чтобы годился, нужно добавить в мейкфайл определения необходимых экспортов к уже имеющимся там, затем пересобрать.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

Shmuel wrote:1. lfsearch_e.dll - он generic, но содержит внутри Lua-код, так что для экспериментов не подойдёт.
Вроде бы где-то на форуме встречал упоминание о том, что если подложить рядом одноимённый скрипт, то он подхватится вместо embedded?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

Так было когда-то, потом я это изменил (хотя лазейка осталась). Но зачем это, по-моему это лишнее.
А лазейка простая - переименовать dll.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Smitis »

Shmuel wrote:А лазейка простая - переименовать dll.
На крайний случай, буду иметь ввиду.
А так, перекомпилировал, завтра опять мучить буду, пока время между проектами есть :)
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

far.Menu
BreakKey="C+TAB"
BreakKey="CS+TAB"

Не срабатывают.

Code: Select all

lm:post far.Menu({},{},{{BreakKey="TAB"},{BreakKey="C+TAB"},{BreakKey="CS+TAB"}})
В мануалах не нашёл упоминания о таком ограничении.
Баг?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by Shmuel »

John Doe wrote:В мануалах не нашёл упоминания о таком ограничении.
Баг?
Баг Фара, сломалось в 2897. На мантис, или связаться с lort.
User avatar
John Doe
Бюрократ
Posts: 13851
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: LuaFAR — библиотека для создания плагинов на языке Lua

Post by John Doe »

AdvControl в случае ошибки возвращает 0.

Code: Select all

lm:post print(far.AdvControl (far.Flags.ACTL_GETWINDOWINFO,-2))
На это есть особые причины?
Если нет, то удобнее было бы nil
Post Reply

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