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

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 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: 6840
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:

Видимо, надо передавать бинарный Id, а не строковый. Hint: win.Uuid.
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:Видимо, надо передавать бинарный Id, а не строковый. Hint: win.Uuid.
Да я по-всякому пробовал
Разум когда-нибудь победит.
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Да, оказался баг. Исправлено.
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 »

Да, теперь работает. Спасибо
Разум когда-нибудь победит.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

А правильно я понимаю, что когда я пишу
s:len()
s:sub()
она там начинает побайтно строчку сканировать, каждый раз с самого начала? Т.е. эти операции относительно медленные?
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Max Rusov wrote:А правильно я понимаю, что когда я пишу
s:len()
s:sub()
она там начинает побайтно строчку сканировать, каждый раз с самого начала? Т.е. эти операции относительно медленные?
s:sub действительно очень медленная на длинных строках (в отличие от string.sub).
s:len - не проверял её скорость.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

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

Post by Smitis »

Shmuel wrote:s:sub действительно очень медленная на длинных строках (в отличие от string.sub).
А разве первая форма не сокращённая запись второй?
Разум когда-нибудь победит.
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

Smitis wrote:А разве первая форма не сокращённая запись второй?
s:sub - это unicode.utf8.sub(s)
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Result = far.SendDlgMessage (hDlg, Msg, Param1, Param2)

Не могу сообразить откуда взять hDlg открытого в данный момент диалога.
Shmuel
Posts: 6840
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:Не могу сообразить откуда взять hDlg открытого в данный момент диалога.
ACTL_GETWINDOWINFO
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 »

John Doe wrote:Result = far.SendDlgMessage (hDlg, Msg, Param1, Param2)

Не могу сообразить откуда взять hDlg открытого в данный момент диалога.
http://forum.farmanager.com/viewtopic.php?f=4&t=7762
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

far.Show (...)
Returns:
nothing

Почему бы ей не возвращать Item.text и Position?

Update
http://bugs.farmanager.com/view.php?id=2573
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

far.Menu (Properties, Items [, BreakKeys])
Правильно ли я понимаю, что в случае закрытия меню по BreakKey прямой доступ к выбранному Item невозможен?
Только через Position?

(P.S. ранее в теме есть кое-что о Menu: http://forum.farmanager.com/viewtopic.p ... 020#p49020)
Shmuel
Posts: 6840
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:far.Show (...)
Returns:
nothing

Почему бы ей не возвращать Item.text и Position?
Вы правы, беру на заметку.
John Doe wrote:far.Menu (Properties, Items [, BreakKeys])
Правильно ли я понимаю, что в случае закрытия меню по BreakKey прямой доступ к выбранному Item невозможен?
Только через Position?
Если под "выбранным" понимается пункт, на котором стоял курсор в момент нажатия BreakKey, то да.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Shmuel wrote:Если под "выбранным" понимается пункт, на котором стоял курсор в момент нажатия BreakKey, то да.
Возможно я ещё не совсем въехал, но ведь и BreakKey и Item нужны одновременно?

Я понимаю, что Item можно получить как Items[Position], но как-то это не слишком прямо.
Что если Items это не переменная, а значение (например возвращаемое far.MakeMenuItems)

Другими словами, может быть фунции Menu стоит возвращать 3 значения?
Или же поместить ссылку на Item в возвращаемый BreakKey?
(Эти 2 варианта просто первыми пришли в голову, на самом деле вариантов масса)
Shmuel
Posts: 6840
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:Возможно я ещё не совсем въехал, но ведь и BreakKey и Item нужны одновременно?
В случае нажатия BreakKey, "Item" - это таблица, содержащая BreakKey. Что касается выделенного пункта, то (как правило) нужно знать только его позицию (а чаще всего и это не нужно).
John Doe wrote:Я понимаю, что Item можно получить как Items[Position], но как-то это не слишком прямо.
Что если Items это не переменная, а значение (например возвращаемое far.MakeMenuItems)
Присвойте значение, возвращаемое far.MakeMenuItems, переменной. (Мне кажется, это надуманный пример).
John Doe wrote:Другими словами, может быть фунции Menu стоит возвращать 3 значения?
Или же поместить ссылку на Item в возвращаемый BreakKey?
Это то что сходу пришло в голову, наверняка есть и более красивые варианты
За несколько лет работы с far.Menu практической надобности в этом ни разу не было.
Post Reply

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