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

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

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

Post by John Doe » Wed 29 Jul, 2009 21:41

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

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

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

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

Полезное по теме: См. также:

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Tue 04 Aug, 2009 19:17

Aidar wrote:Вопрос: будет ли Unicode'ная версия плагина.
По поводу поддержки Unicode самим Lua: на LuaForge есть несколько проектов.
Один из них: Selene Unicode v.1.1 (for Lua)
http://luaforge.net/frs/download.php/16 ... .1.tar.bz2
1. До конца года маловероятно, что я буду заниматься LuaFar'ом (за исключением правки багов). Если кто-то хочет раньше - исходники открыты.

2. Для юникодной версии недостаточно внешних библиотек, нужны доработки в самом Lua. Не уверен, что они появятся в Lua 5.2. Один из реальных вариантов - сделать версию LuaFAR на основе LuaPlus (http://luaplus.org/), в котором есть определённая поддержка юникода.

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Fri 07 Aug, 2009 12:28

Aidar wrote:Вопрос по far.Menu: как получить BreakCode при использовании BreakKeys. Что-то по исходному коду не понял.
Вообще-то всё очень просто. Каждый элемент массивов Items и BreakKeys является таблицей. Я обычно помещаю в каждый элемент специфическое поле, например action (функция), filename (стринг) и т.п., в зависимости от того, что выбирается в данном меню. При этом меня уже не волнует каким способом было закрыто меню, с помощью BreakKey или нет (хотя это легко узнать, если надо).



gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 12:56

При установке luaFar у меня возникло несколько вопросов.
1. Когда нужно использовать lua5.1.dll а когда lua51.dll ?
2. В какую директорию необходимо устанавливать luafar.dll в %FARHOME% или в одну директорию с luaplug.dll?
3. как плагин ищет интерпретатор lua, если ни lua5.1.dll ни lua51.dll нет в пути?

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 13:20

gotar wrote:При установке luaFar у меня возникло несколько вопросов.
1. Когда нужно использовать lua5.1.dll а когда lua51.dll ?
2. В какую директорию необходимо устанавливать luafar.dll в %FARHOME% или в одну директорию с luaplug.dll?
3. как плагин ищет интерпретатор lua, если ни lua5.1.dll ни lua51.dll нет в пути?
1. В папке win32_bin специально лежат две длл-ки, одна работает только с lua5.1.dll, другая - только с lua51.dll. Выбери ту одну из них, которая соответствует имеющейся в системе длл-ке Lua (см. readme в win32_bin)

2. luafar.dll нельзя устанавливать в директорию плагина. В %FARHOME% - можно, а также в любое место на %PATH%.

3. Интерпретатор Lua (если имеется в виду lua.exe) плагину не нужен. А вот lua5.1.dll (или lua51.dll) обязана быть на ПУТИ.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 13:30

в _http://luaforge.net/frs/download.php/4220/LuaForWindows_v5.1.4-29.exe есть и та и та dll причем разного размера. Чем они отличаются я так и не нашел

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 13:37

gotar wrote:в _http://luaforge.net/frs/download.php/4220/LuaForWindows_v5.1.4-29.exe есть и та и та dll причем разного размера. Чем они отличаются я так и не нашел
"Основная" - большего размера. Меньшая - это так называемая "прокси длл".

Да, и чтобы не было дальнейших неясностей, надеюсь понятно, что LuaFAR - это не плагин, а библиотека? Плагин должен быть написан дополнительно, на языке Lua.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 13:50

понятно что нужны файлы, которые собственно будет обрабатывать интерпретатор lua. Правда пока не понятно , как он их будет подхватывать.

Я не понял для чего нужна proxy dll.

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 14:01

gotar wrote:понятно что нужны файлы, которые собственно будет обрабатывать интерпретатор lua. Правда пока не понятно , как он их будет подхватывать.
Очень просто: имя плагина на Lua должно совпадать с именем dll плагина. Например: luaplug.lua и luaplug.dll. Впрочем, в доках это есть.
gotar wrote:Я не понял для чего нужна proxy dll.
Пример.
Если ты пользуешься "основной" lua5.1.dll, но скачал бинарник библиотеки, заточенной под lua51.dll, то эта "маленькая" lua51.dll будет переадресовывать обращения к себе на "большую длл".

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 14:10

Понятно. А файлы SysUtils.dll rex_pcre.dll bit.dll с 2007 года не обновлялись?

Что нужно сделать, чтобы стала доступна функция AddToMenu?

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 14:24

gotar wrote:Понятно. А файлы SysUtils.dll rex_pcre.dll bit.dll с 2007 года не обновлялись?
О, передо мной пользователь LuaFAR 0.1 :shock:
Все обновлялись, но SysUtils.dll - неопубликована, поэтому лучше на неё не рассчитывать. Остальные две - лежат на LuaForge.
Что нужно сделать, чтобы стала доступна функция AddToMenu?
Это вопрос по плагину LuaFAR for Editor. Должен задаваться в его ветке. Ответ: эта ф-ция и так доступна в файле _usermenu.lua.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 14:44

Shmuel wrote:О, передо мной пользователь LuaFAR 0.1
Не совсем. Пока что я взял _http://luaforge.net/frs/download.php/3809/LuaFAR-ver0.1-20070810.zip и сверху на него положил _http://luaforge.net/frs/download.php/4216/LuaFAR-0.7.3.zip.

Теперь, как я понял, необходимо эти дллки необходимо удалить, с тем чтобы современная версия этих dll бралась из установленного lua. Остаось понять, что необходимо прописать в luaplug.lua чтобы стали доступны функции из lf4ed_emb.dll

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 14:51

Пожалуйста напиши, что тебе нужно (конечная цель), а то не совсем понятно.
Остаось понять, что необходимо прописать в luaplug.lua чтобы стали доступны функции из lf4ed_emb.dll
Кажется ты всё-таки путаешь библиотеку с плагином... Все луафаровские функции сразу и автоматом доступны плагину. Ничего специально прописывать не надо. (или я не понял вопрос).

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 15:02

Shmuel wrote:Пожалуйста напиши, что тебе нужно (конечная цель), а то не совсем понятно.
Остаось понять, что необходимо прописать в luaplug.lua чтобы стали доступны функции из lf4ed_emb.dll
Кажется ты всё-таки путаешь библиотеку с плагином... Все луафаровские функции сразу и автоматом доступны плагину. Ничего специально прописывать не надо. (или я не понял вопрос).
Я так понял, что использовать lf4ed_emb.dll то функция Addytomenu из программ на Lua, а если использовать luaplug.dll то нужно самим заботиться о доступе к своим программам на lua путем правки luaplug.lua. Мне бы хотелось иметь возможность быстро писать маленкие скриптики как для редактора фара так и для самого фара не заводя два плагина с одной функциональностью

Shmuel
Posts: 5159
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 15 times
Been thanked: 144 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by Shmuel » Sun 06 Sep, 2009 15:17

gotar wrote:Я так понял, что использовать lf4ed_emb.dll то функция Addytomenu из программ на Lua, а если использовать luaplug.dll то нужно самим заботиться о доступе к своим программам на lua путем правки luaplug.lua. Мне бы хотелось иметь возможность быстро писать маленкие скриптики как для редактора фара так и для самого фара не заводя два плагина с одной функциональностью
Выбор - за плагинописателем (т.е., за тобой) :) Для редактора - самый безболезненный вариант - LuaFAR for Editor. Возьми fl_scripts и посмотри, как автор добавил кучу нужной ему функциональности. Делай как он, делай лучше его. :ha:
Если же нужно соорудить что-то существенное с панелями (масштаба TmpPanel, например), то, конечно, нужно писать отдельный плагин.

Да, не пользуйся lf4ed_emb.dll - он не предназначен для тех, кто что-то добавляет сам. См. файл readme2.txt.

gotar
Posts: 293
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 8 times

Re: LuaFAR — помощь в написании плагинов для FAR на языке Lua

Post by gotar » Sun 06 Sep, 2009 15:25

Не моuли бы Вы проверить что luafar.dll ищется в %FARHOME%
Last edited by gotar on Sun 06 Sep, 2009 15:38, edited 1 time in total.

Post Reply

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