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

Здесь обсуждается всё, что касается макросов.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13867
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, в дистрибутиве)

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

Полезное по теме: См. также:
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

'..\name'
А если вы имеете ввиду прямо в кавычках, то ничего не будет, так и останется.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

На самом деле может ещё попасться 'dir/..'
Надо тоже учитывать...

Например так: if not regex.find(FarDialogItem[10],[[(^|[\/])\.\.?$]])
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

hh.exe %FARHOME%\Encyclopedia\luafar_manual.chm::/127.html wrote:

Code: Select all

result = export.ProcessViewerEvent (ViewerID, Event, Param)

Parameters:
  ViewerID: integer
  Event:    integer
  Param:    nil

Returns:
  result:   integer
Настораживает Param: nil
Для чего он тогда?
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 »

Для напоминания :)
Смотрите changelog 2439.2.
Неплохо бы привести Энциклопедию в соответствие с чейнжлогом.
User avatar
John Doe
Бюрократ
Posts: 13867
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Теперь ясно. Значит макро-функции ViewerEvent реально получают 2 параметра, а не 3
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 »

А вот тоже вопрос по параметрам
result = far.Message (Msg, [Title], [Buttons], [Flags], [HelpTopic], [Id])
последний параметр задействован или нет? А то при любом значении id диалога всегда равен id LuaMacro
Разум когда-нибудь победит.
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 »

Видимо, надо передавать бинарный 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: 13867
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
Post Reply

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