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

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

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: 5976
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 25 times
Been thanked: 257 times

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

Post by Shmuel »

Latest post of the previous page:

IgorZ wrote:Почему editor.Quit() и viewer.Quit() отрабатывают с таким запозданием? Это нормально?
Есть маленькая хитрость: после editor.Quit() и viewer.Quit() ставить

Code: Select all

far.AdvControl("ACTL_COMMIT")

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

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

Post by John Doe »

Shmuel wrote:Есть маленькая хитрость: после editor.Quit() и viewer.Quit() ставить

Code: Select all

far.AdvControl("ACTL_COMMIT") 
Спасибо за действительно неочевидную хитрость.
Например в момент EE_KILLFOCUS Area.Current=="Editor", но после ACTL_COMMIT — Area.Current=="Shell" (в случае при переходе из редактора в панели)

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

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

Post by IgorZ »

Smitis wrote:
IgorZ wrote:И отдельная просьба. Не смог сам разобраться, как получить Descriptions.ListNames.
Far.Cfg_Get("Descriptions","ListNames")
Спасибо. А я-то копал

Code: Select all

far.CreateSettings("far")
Кстати, а через него можно?

За

Code: Select all

far.AdvControl("ACTL_COMMIT")
тоже спасибо.

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

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

Post by John Doe »

IgorZ wrote:А я-то копал

Code: Select all

far.CreateSettings("far")
Кстати, а через него можно?
Без Энциклопедии невозможно понять LuaFar мануал, поэтому я и выкладывал версию мануала с перекрёстными ссылками.

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

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

Post by John Doe »

В шапке неофициальная линкифицированная версия мануала

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

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

Post by John Doe »

Нельзя ли научить функцию string:format корректно работать с юникодом?

Code: Select all

far.Show(
  ("%-10s -"):format("qw"),
  ("%-10s -"):format("фы")
)

Code: Select all

lm:post far.Show(   ("%-10s -"):format("qw"),   ("%-10s -"):format("фы") )

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

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

Post by Shmuel »

John Doe wrote:Нельзя ли научить функцию string:format корректно работать с юникодом?
Проблема известна мне уже пару лет. Судя по этому, можно прогнозировать, будет ли фикс скоро. Но присланные патчи могут ускорить дело.

И на мантис наверное не помешает.

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

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

Post by John Doe »

http://bugs.farmanager.com/view.php?id=2372

Изменение требуется с виду простое.
Но с патчами туго будет: мало кто из активных пользователей LuaFAR владеет C++, а тем более ориентируется в исходниках проекта.

2useven10
Posts: 4002
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 179 times

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

Post by 2useven10 »

JohnDoe Вы уверены, что багтрекер выбран правильно ?

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

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

Post by John Doe »

Да

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

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

Post by Shmuel »

John Doe wrote:Изменение требуется с виду простое.
Но с патчами туго будет: мало кто из активных пользователей LuaFAR владеет C++, а тем более ориентируется в исходниках проекта.
В данном случае править надо будет в библиотеке Selene Unicode. Она встроена в LuaFAR, но в исходниках всё равно и мне придётся разбираться почти с нуля. Хотя несколько фиксов в этой библиотеке уже сделал в своё время.

2useven10
Posts: 4002
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 179 times

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

Post by 2useven10 »

Shmuel
Патч есть, насколько он кошерный, решать тебе.

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

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

Post by John Doe »

Видел Issue на старом багтрекере.
Ещё актуально? На мантис занести?

Update
http://bugs.farmanager.com/view.php?id=2375

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

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

Post by Shmuel »

2useven10 wrote:Shmuel
Патч есть, насколько он кошерный, решать тебе.
Спасибо, буду смотреть.
John Doe wrote:Видел Issue на старом багтрекере.
Ещё актуально? На мантис занести?
Да.

IgorZ
Posts: 660
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 12 times
Been thanked: 52 times

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

Post by IgorZ »

В luafar manual сказано:
result = editor.Editor (FileName, Title, X1, Y1, X2, Y2,Flags, StartLine, StartChar, CodePage)

Parameters:
* * *
StartLine: integer, or nil (1-based; default = 0)
StartChar: integer, or nil (1-based; default = 0)
Создаём файл
Запускаем, обнаруживаем, что курсор расположился во 2 строке и 2 колонке. В Far 3.0.3258 редактор при исполнении этого макроса позиционирует курсор именно в 3 строку и 3 столбец. После
shmuel 22.03.2013 17:22:55 +0200 - build 116

1. LuaFAR: начало ограниченной ломки API (перевод индексов с базы 0 на базу 1).
начался такой "недолёт". Похоже, в editor.Editor позиционирование курсора было сломано лишний раз.

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

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

Post by Shmuel »

IgorZ wrote:Похоже, в editor.Editor позиционирование курсора было сломано лишний раз.
Спасибо за репорт. Поправлено, будет в следующей ночной сборке.

Post Reply

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