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

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

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

Post by IgorZ » Thu 25 Apr, 2013 04:00

Данный скрипт содержит следующие макросы:
  1. Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.

    Клавиша вызова по умолчанию: AltShiftF11.
  2. Вставка Lua/Moon скрипта (с выбором, какого типа) в редактируемый .lua/.moon файл.
    Клавиша вызова по умолчанию: LCtrlF11.
  3. Вставка Lua/Moon Macro в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  4. Вставка Lua/Moon Event в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  5. Вставка Lua/Moon MenuItem в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  6. Вставка Lua/Moon CommandLine в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  7. Вставка Lua/Moon PanelModule в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  8. Редактирование Lua/Moon скрипта из редактируемого файла.
    Клавиша вызова по умолчанию: CtrlF12.
  9. Вставка строки guid в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlU.
  10. Перезагрузка всех скриптов.
    Клавиша вызова по умолчанию: CtrlF9.
Требуемая версия Far 3.0.4000+.

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

Attachments
LuaManager.5.0.6.7z
(59.02 KiB) Downloaded 24 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 253 times
Last edited by IgorZ on Fri 22 Nov, 2019 07:06, edited 12 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 » Mon 29 Apr, 2013 18:53

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: 12537
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 237 times

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

Post by John Doe » Mon 29 Apr, 2013 19:04


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

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

Post by John Doe » Mon 29 Apr, 2013 19:49

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

IgorZ
Posts: 643
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 11 times
Been thanked: 48 times

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

Post by IgorZ » Tue 30 Apr, 2013 10:26

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

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

На мой взгляд, скрипт пока сыроват для включения в стандартную поставку. Слишком много камней, на которых он спотыкается. Да вот, к примеру, задание области или клавиш с помощью переменной.

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

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

Post by John Doe » Tue 30 Apr, 2013 10:34

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

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

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

P.P.S.
Получить позицию action/condition можно без модификаций в LuaMacro, но для ваших целей этого мало, т.к. action/condition могут быть за пределами определения Macro { ... }.

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

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

Post by John Doe » Tue 30 Apr, 2013 10:44

P.P.P.S.
Кстати переменные можно вычислить выполняя этот макрофайл (Macro/Event только заглушить надо)

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

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

Post by John Doe » Tue 30 Apr, 2013 11:08

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

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

P.S.
LuaManager1.0.3 почему-то не может найти макрос если в description встречаются квадратные скобки
Уже сообщал

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Tue 30 Apr, 2013 11:22

John Doe wrote:Это лишь пожелание. Насколько это повысит удобство понять сложно, пробовать надо.
Если делать группировку, то, желательно, чтобы это было опционально. Мне, например, гораздо важнее, чтобы можно было отфильтровать макросы по имени и они показывались все в в едином списке вне зависимости от области.

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

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

Post by John Doe » Tue 30 Apr, 2013 12:00

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

Пожелания:

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

Возможно будет удобно запоминать состояние фильтра между вызовами (но не между сеансами)
И выделить клавишу для сброса фильтра.

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

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

Post by John Doe » Tue 30 Apr, 2013 12:53

Пожелание.
Выделить функции создания и редактирования макроса/события, чтобы была возможность использовать их отдельно (назначив макросы редактора для *.lua).

Shmuel
Posts: 5924
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

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

Post by Shmuel » Tue 30 Apr, 2013 13:05

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

Но сабж этого не учитывает, он это "отфильтровывает". В результате одни макросы могут "исчезнуть", а в других будут показаны не все их области.

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

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

Post by John Doe » Tue 30 Apr, 2013 16:06

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

Update: http://forum.farmanager.com/viewtopic.p ... 97#p109197

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

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

Post by John Doe » Wed 01 May, 2013 00:23

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

Совместить фильтры CtrlM и CtrlE
Сюда же можно добавить
- фильтр по маскам
- фильтр по флагам

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

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

Post by John Doe » Wed 01 May, 2013 00:30

Баг

Area: ShellAutoCompletion DialogAutoCompletion

S.......D....Aa...

tstr
Posts: 533
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 9 times
Been thanked: 8 times

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

Post by tstr » Wed 01 May, 2013 15:33

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

3.0 build 3379 x86 и x64, LuaManager v1.0.3.
сообщения о ошибках выше видел, как и то, что д.б. исправлено (пару ночных сборок вышло), скрипт обновлялся. что теперь-то не так?

Shmuel
Posts: 5924
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 233 times

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

Post by Shmuel » Wed 01 May, 2013 15:50

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

Code: Select all

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

Code: Select all

lm:post ("%1000s"):format"a" msgbox"ok"
В первом случае должно быть ок, во втором - ошибка.
Если у вас не так, значит luafar3.dll - левая.
Если так - сабж виноват.

tstr
Posts: 533
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 9 times
Been thanked: 8 times

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

Post by tstr » Wed 01 May, 2013 16:05

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"
- без ошибки.

Post Reply

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