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

Здесь выкладываются готовые к использованию макросы и скрипты.
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 521 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
User avatar
lazyeugene
Posts: 243
Joined: Sat 29 Aug, 2009 17:14
Has thanked: 1 time

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

Post by lazyeugene »

Latest post of the previous page:

В чём может быть проблема?

Code: Select all

╔═══════════════════════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════════════════════╗
║ ...Roaming\Far3\Lazy\Macros\scripts\LuaManager1.0.2.lua:923: invalid format (width or precision too long)                               ║
║ stack traceback:                                                                                                                        ║
║ ○[C]: in function 'format'                                                                                                              ║
║ ○...Roaming\Far3\Lazy\Macros\scripts\LuaManager1.0.2.lua:923: in function <...Roaming\Far3\Lazy\Macros\scripts\LuaManager1.0.2.lua:819> ║
╟─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║                                                                 { OK }                                                                  ║
╚═════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Фар 3.0.3355 если что. Вижу место, но с lua, видимо, недостаточно глубоко знаком, чтобы быстро разобраться.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

В функции ShortArea ошибка - неправильно названы области автодополнения.
А саму функцию я написал бы так:
  1. local function makeArray(Str)
  2.  
  3.   local A = {}; for S in Str:gmatch("%w+") do A[#A+1] = S end; return A
  4.  
  5. end
  6.  
  7. local full = makeArray([[Shell Info QView Tree Search FindFolder Viewer Editor Dialog Menu MainMenu
  8.  
  9.                          UserMenu Disks ShellAutoCompletion DialogAutoCompletion Help Other Common]])
  10.  
  11. local short = makeArray"S I Q T s F V E D m M U d A a H O C"
  12.  
  13. --local short = makeArray"Sh In QV Tr Se FF Vi Ed Di Me MM UM Ds SA DA He Ot Co"
  14.  
  15. assert(#full==#short and #full==18)
  16.  
  17. local function ShortArea(area) -- сворачивает список областей в короткую строку фиксированной длины
  18.  
  19.   local a = ""
  20.  
  21.   for i,v in ipairs(full) do
  22.  
  23.     a = a..(area:find(v) and short[i] or ".")
  24.  
  25.   end
  26.  
  27.   return a
  28.  
  29. end
Можно обойтись без вспомогательной makeArray, но я сильно не люблю сборище кавычек и запятых
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 1.0.3 - Исправление ошибок, оптимизация, фильтры областей и групп, опция открытия файла в редакторе по ALtF4, даже если не смог найти макрос.

John Doe:
Пожелание насчёт группировки: очень сильно нужно? А то пока есть куда более актуальные направления допиливания.

На мой взгляд, скрипт пока сыроват для включения в стандартную поставку. Слишком много камней, на которых он спотыкается. Да вот, к примеру, задание области или клавиш с помощью переменной.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote:Пожелание насчёт группировки: очень сильно нужно? А то пока есть куда более актуальные направления допиливания.
Это лишь пожелание.
Насколько это повысит удобство понять сложно, пробовать надо.

Допиливайте согласно ваших приоритетов )

P.S.
А для чего вам вычислять области/клавиши заданные переменной?
Более правильное решение вверху страницы, требуется маленькое изменение LuaMacro.
А продолжать вместо этого городить костыли - тупик.

P.P.S.
Получить позицию action/condition можно без модификаций в LuaMacro, но для ваших целей этого мало, т.к. action/condition могут быть за пределами определения Macro { ... }.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

P.P.P.S.
Кстати переменные можно вычислить выполняя этот макрофайл (Macro/Event только заглушить надо)
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

<Отсутствует или не удалось найти>
Почему ИЛИ?
Отсутствие вроде однозначно определяется по type(m.action)~="function"

А насчёт "не удалось найти" то это возможно если файл редактировался (или не существует).
Или возможны другие проблемы?

P.S.
LuaManager1.0.3 почему-то не может найти макрос если в description встречаются квадратные скобки
Уже сообщал
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

John Doe wrote:Это лишь пожелание. Насколько это повысит удобство понять сложно, пробовать надо.
Если делать группировку, то, желательно, чтобы это было опционально. Мне, например, гораздо важнее, чтобы можно было отфильтровать макросы по имени и они показывались все в в едином списке вне зависимости от области.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Чуть не пропустил фильтры. Понравилось.

Пожелания:

Совместить фильтры CtrlM и CtrlE
Добавить обработку пробела (а от Ins ожидается переход на следующий элемент)
Раз есть Ins, то ожидается и Del
Было бы удобно также Ctrl-<*>, Ctrl-<+>, Ctrl-<->

Возможно будет удобно запоминать состояние фильтра между вызовами (но не между сеансами)
И выделить клавишу для сброса фильтра.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Пожелание.
Выделить функции создания и редактирования макроса/события, чтобы была возможность использовать их отдельно (назначив макросы редактора для *.lua).
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 »

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

Но сабж этого не учитывает, он это "отфильтровывает". В результате одни макросы могут "исчезнуть", а в других будут показаны не все их области.
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Пожелание.
Фильтр по нажатой клавише.
Т.е. считывается клавиша, и в списке остаются только макросы реагирующие на неё.
На области можно не смотреть.

Update: http://forum.farmanager.com/viewtopic.p ... 97#p109197
User avatar
John Doe
Бюрократ
Posts: 13853
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

Совместить фильтры CtrlM и CtrlE
Сюда же можно добавить
- фильтр по маскам
- фильтр по флагам
User avatar
John Doe
Бюрократ
Posts: 13853
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 - левая.
Если так - сабж виноват.
Post Reply

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