Менеджер Lua-скриптов для Farа

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.









Требуемая версия Far 3.0.5210+.

Начиная с версии 4.0, скрипт выполнен в виде модуля и набора вызывающих макросов.

Attachments
LuaManager.6.0.2.7z
Версия для Far 3.0.0.5934+
(65.47 KiB) Downloaded 95 times
LuaManager.5.2.0.7z
Версия для Far 3.0.0.5210+
(58.78 KiB) Downloaded 221 times
LuaManager.5.0.6.7z
Последняя опубликованная версия, поддерживающая Far 3.0.0.4000 и выше
(59.02 KiB) Downloaded 354 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 517 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Менеджер Lua-скриптов для Fara

Post by John Doe »

Latest post of the previous page:

John Doe wrote: Пожелания:

Совместить фильтры CtrlM и CtrlE
Сюда же можно добавить
- фильтр по маскам
- фильтр по флагам
User avatar
John Doe
Бюрократ
Posts: 13849
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

Re: Менеджер Lua-скриптов для Fara

Post by John Doe »

Баг

Area: ShellAutoCompletion DialogAutoCompletion

S.......D....Aa...
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: Менеджер Lua-скриптов для Fara

Post by tstr »

всёже наблюдается аналогичная ошибка формата,

3.0 build 3379 x86 и x64, LuaManager v1.0.3.
сообщения о ошибках выше видел, как и то, что д.б. исправлено (пару ночных сборок вышло), скрипт обновлялся. что теперь-то не так?
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Менеджер Lua-скриптов для Fara

Post by Shmuel »

Попробуйте два скрипта

Code: Select all

lm:post ("%999s"):format"a" msgbox"ok"

Code: Select all

lm:post ("%1000s"):format"a" msgbox"ok"
В первом случае должно быть ок, во втором - ошибка.
Если у вас не так, значит luafar3.dll - левая.
Если так - сабж виноват.
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: Менеджер Lua-скриптов для Fara

Post by tstr »

Shmuel wrote:Попробуйте два скрипта

Code: Select all

lm:post ("%999s"):format"a" msgbox"ok"

Code: Select all

lm:post ("%1000s"):format"a" msgbox"ok"
В первом случае должно быть ок, во втором - ошибка.
именно так.
Shmuel wrote:Если у вас не так, значит luafar3.dll - левая.
Если так - сабж виноват.
таки не сабж.
в моём случае заполняем формат значениями key_w =107, desc_w =99, ошибка возникает, при precision более двух чисел,
напр.

Code: Select all

lm:post ("%999.101s"):format"a" msgbox"ok"
- ошибка,

Code: Select all

lm:post ("%999.99s"):format"a" msgbox"ok"
- без ошибки.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Менеджер Lua-скриптов для Fara

Post by Shmuel »

tstr wrote: таки не сабж.
в моём случае заполняем формат значениями key_w =107, desc_w =99, ошибка возникает, при precision более двух чисел,
напр.

Code: Select all

lm:post ("%999.101s"):format"a" msgbox"ok"
- ошибка
Ну так объясните, зачем здесь precision 101.
Обработка precision в luafar3.dll не менялась (и не будет меняться, скорее всего).
tstr
Posts: 559
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

Re: Менеджер Lua-скриптов для Fara

Post by tstr »

Shmuel wrote:
tstr wrote: таки не сабж.
в моём случае заполняем формат значениями key_w =107, desc_w =99, ошибка возникает, при precision более двух чисел,
напр.

Code: Select all

lm:post ("%999.101s"):format"a" msgbox"ok"
- ошибка
Ну так объясните, зачем здесь precision 101.
теперь понятен источник ошибки, благодарю за помощь. а за реализацию - лучше у автора объяснений попросить.
(речь, уточню, идёт о

Code: Select all

items[#items].text = (" %s %s │ %-"..key_w.."."..key_w.."s%s│ %-"..desc_w.."."..desc_w.."s%s"):format(...
)
Обработка precision в luafar3.dll не менялась (и не будет меняться, скорее всего).
я уверен что вы или приняли, или примете взвешенное решение. ;)
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Менеджер Lua-скриптов для Fara

Post by Shmuel »

Если добавить макрос

Code: Select all

lm:post far.MacroAdd ("MACROAREA_SHELL", nil, "CtrlF3", "msgbox('added on the fly')")
запустить LuaManager1.0.3 и нажать F4 на данном макросе, получим ошибку:

Code: Select all

...LuaManager1.0.3.lua:477:attempt to index local 'hfile' (a nil value)
User avatar
DrKnS
Posts: 6114
Joined: Thu 04 Aug, 2005 06:44
Location: Kyiv
Has thanked: 12 times
Been thanked: 426 times

Re: Менеджер Lua-скриптов для Fara

Post by DrKnS »

А почему при отсутствии description не работают F3 и F4?

F3:
LuaManager1.0.3.lua:162: attempt to index a nil value
stack traceback:
LuaManager1.0.3.lua:162: in function 'ShowInfo'
LuaManager1.0.3.lua:967: in function <LuaManager1.0.3.lua:837>
F4:
Macro id=4 is not found. May be area or key is nonstandard set
xarx
Posts: 125
Joined: Tue 23 Nov, 2010 12:06

Re: Lua Менеджер ломает код

Post by xarx »

Lua Manager 1.0.3 ломает строки (string) содержащие "--". Например такой код

Code: Select all

  action = function()
    msg = "\n----- abc -----\n"..
      "c--df\n"
  end;
}
изменяет на

Code: Select all

  action = function()
    msg = "\n
      "c
  end
После сохранения сломанный и файл.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ »

После долгой творческой комы, вызванной совокупностью объективных и субъективных факторов, возвращаюсь и выкладываю новую версию. Изменений накопилось много, так что прошу тестировать потщательнее. Подробности, как всегда, в заглавном посте темы.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Менеджер Lua-скриптов для Fara

Post by Shmuel »

IgorZ wrote:Изменений накопилось много, так что прошу тестировать потщательнее.
Ну, те проблемы, что я раньше рапортовал, так и не исправлены:
1. http://forum.farmanager.com/viewtopic.p ... 68#p109168
2. http://forum.farmanager.com/viewtopic.p ... 29#p109229

До кучи: нажатие F3 на макросе приводит к ошибке, если у макроса не определена функция condition:
...LuaManager.lua:238: bad argument #1 to 'getinfo' (function or level expected)
Игорь Юдинцев
Posts: 726
Joined: Sun 03 Apr, 2005 22:00
Location: Казань
Been thanked: 2 times

Re: Менеджер Lua-скриптов для Fara

Post by Игорь Юдинцев »

invalid format по-прежнему на месте, build 3683, Lua Manager 1.2.1.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ »

Новая версия в первом посте.
Shmuel wrote:Области и группы в LuaMacro - регистроНЕзависимые.
Можно указать area="eDiTor" или group="eXitFaR", и будет нормально работать.
Теперь должно работать.
Shmuel wrote:Если добавить макрос

Code: Select all

lm:post far.MacroAdd ("MACROAREA_SHELL", nil, "CtrlF3", "msgbox('added on the fly')")
запустить LuaManager1.0.3 и нажать F4 на данном макросе, получим ошибку:

Code: Select all

...LuaManager1.0.3.lua:477:attempt to index local 'hfile' (a nil value)
Учёл ввариант с временными макросами. Кстати, вопрос: без файла может быть только клавиатурный макрос? А то я на всякий случай учинил глобальный контроль для всех видов макросов и событий, возможно, зря.
Shmuel wrote:До кучи: нажатие F3 на макросе приводит к ошибке, если у макроса не определена функция condition:
...LuaManager.lua:238: bad argument #1 to 'getinfo' (function or level expected)
Досадная опечатка. Вместо item.action было обращение к item.condition. Исправлено.
Игорь Юдинцев wrote:invalid format по-прежнему на месте, build 3683, Lua Manager 1.2.1.
Вроде, поправил. Проблема в том, что конструкция %N.Ns вызывает ошибку, если N>=100. То есть, %999.99s ещё работает, а %999.100s уже слетает.

Да и вообще, format ведёт себя странно. К примеру:
В первом варианте format всё делает правильно: обрезает выводимое значение до максимальной ширины, и дополняет до указанной ширины поля пробелами. В третьем тоже, как ему и сказали, просто обрезает до максимального ограничения. А вот во втором короткую строку дополняет пробелами, как ему и положено, а длинную - нет, хотя должен. Сижу вот, смотрю на это чудо и думаю: то ли я чего-то недопонял, то ли в консерватории непорядок. Не хотелось бы переписывать этот код без format-а, но, возможно, придётся.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ »

Сейчас проверил одно подозрение. И точно:
С 99 символами ещё работает нормально, а со 100 уже глючит.
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

Re: Менеджер Lua-скриптов для Fara

Post by Shmuel »

IgorZ wrote:Кстати, вопрос: без файла может быть только клавиатурный макрос?
1. клавиатурный (созданный, но ещё не сохранённый)
2. добавленный с помощью far.MacroAdd (и вообще MCTL_ADDMACRO)
3. загруженный из файла, но файл был переименован или удалён после загрузки
IgorZ wrote:Сейчас проверил одно подозрение.
[......]
С 99 символами ещё работает нормально, а со 100 уже глючит.
Спасибо за репорт, исправлено.
Post Reply

Return to “Полезные макросы и скрипты”