Macro Browser alt. — обозреватель макросов

Здесь выкладываются готовые к использованию макросы и скрипты.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Macro Browser alt. — обозреватель макросов

Post by John Doe »

Особенности

Действия с макросами в списке
Фильтры
Сортировка
Прочее

Скрипт и функции всех макросов можно проверить никуда не устанавливая, через меню пользователя.
FarMenu.ini прилагается .

Запуск:
  • Пункт в меню плагинов Macro Browser alt. открывает полный список назначенных макросов.
  • Аналогичный пункт в меню конфигурации плагинов (AltShiftF9) позволяет настроить собственные макросы скрипта (открывает список макросов, относящихся к Macro Browser alt.)
    Отсюда удобно менять комбинации клавиш, или отключать неиспользуемые макросы.
Макросы:
Дополнительные макросы:
В качестве модуля:
Требования:
Предупреждение для неопытных пользователей

http://forum.farmanager.com/viewtopic.php?f=15&t=10376

Отзывы и пожелания приветствуются.

Attachments
MacroBrowserAlt.7z
r1.3
(13.06 KiB) Downloaded 654 times
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Macro Browser alt. — обозреватель макросов

Post by AleXH »

Latest post of the previous page:

  1. {BreakKey="DELETE",           itemAct=delMacro},
delMacro как-то сурово, disableMacro шугает меньше :)

И хорошо бы, чтобы между вызовами сабжа при отображении списка макросов, запоминался макрос на котором стоит курсор.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Macro Browser alt. — r1.2

Post by John Doe »

Небольшое обновление
  • Убрана неработоспособная возможность удаления MCTL_ADDMACRO-макросов.
  • Добавлена новая команда (в списке макросов) CtrlShiftR — перезагрузка плагина LuaMacro
  • rebind: редактор при вставке шаблона (CtrlShiftF4) теперь открывается в utf-8
  • Косметика
  • Минимальная требуемая версия фара теперь 3971
В шапке.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Macro Browser alt. — обозреватель макросов

Post by John Doe »

AleXH wrote:И хорошо бы, чтобы между вызовами сабжа при отображении списка макросов, запоминался макрос на котором стоит курсор.
Как-то не думал, что это может быть полезно...

Сценарий использования приведёте?

P.S.
Для себя в любом случае можете исправить.
Найти строку local pos,bk и перенести её до определения local function browseMacros(flt,...)
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Macro Browser alt. — обозреватель макросов

Post by AleXH »

Предлагаю во все дескрипшены добавить префикс MBA:, например description="MBA: Reload macros"
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Macro Browser alt. — обозреватель макросов

Post by John Doe »

ok
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Macro Browser alt. — обозреватель макросов

Post by AleXH »

MBA: list macros: by priority [choice]
MBA: list macros: by mask [choice]
MBA: list event handlers: by group [choice]
":" после macros, handlers лишнее.

Предлагаю к хелпу добавить хелп по ребинду.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Macro Browser alt. — обозреватель макросов

Post by John Doe »

John Doe wrote:Найти строку local pos,bk и перенести её до определения local function browseMacros(flt,...)
Есть вариант получше, поставить там такой обработчик:
  1. local Pos = {}
  2.  
  3. Event { description="MBA internal (preserve cursor position between launches)";
  4.  
  5.   group="DialogEvent";
  6.  
  7.   condition=function(Event,param)
  8.  
  9.     if Event==F.DE_DLGPROCEND and (param.Msg==F.DN_INITDIALOG or param.Msg==F.DN_CLOSE) then
  10.  
  11.       local info = param.hDlg:send(F.DM_GETDIALOGINFO)
  12.  
  13.       return info and info.Id==MBid
  14.  
  15.     end
  16.  
  17.   end;
  18.  
  19.   action=function(Event,param)
  20.  
  21.     if param.Msg==F.DN_INITDIALOG then
  22.  
  23.       param.hDlg:send(F.DM_LISTSETCURPOS,1,Pos)
  24.  
  25.     else --param.Msg==F.DN_CLOSE
  26.  
  27.       Pos = param.hDlg:send(F.DM_LISTGETCURPOS)
  28.  
  29.     end
  30.  
  31.   end;
  32.  
  33. }
AleXH wrote:":" после macros, handlers лишнее.
Почему?
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Macro Browser alt. — обозреватель макросов

Post by AleXH »

Почему?
1. не несёт смысловой нагрузки
2. кривой инглиш
3. в остальных описаниях в подобных случаях двоеточия нет
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Re: Macro Browser alt. — обозреватель макросов

Post by AleXH »

При вызове lua:require"MacroBrowserAlt"() получаем , помещён в modules, и , если MBA помещён в scripts.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Macro Browser alt. — обозреватель макросов

Post by John Doe »

На самом деле при первом вызове ошибка в обоих случаях выглядит одинаково
(повторная попытка require даст другую ошибку)

Пока у нас не реализован тикет 0002590 выход один: код для восстановления позиции списка надо переместить в какой-либо файл, находящийся в папке scripts
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Re: Macro Browser alt. — обозреватель макросов

Post by John Doe »

До последнего времени идея выполнять макросы из списка (по Enter) мне казалась странной.
Однако судя по всему, это таки используется.
Действительно, есть же меню плагинов, почему не быть меню макросов.

Но меню из 300 пунктов не очень удобно.
Вместо этого, практичнее иметь несколько меню (своё для каждой задачи) и вызывать макросом или из UserMenu.

Может быть стоит развить эту идею по максимуму ?

P.S.
Связанное обсуждение в другой ветке форума: http://forum.farmanager.com/viewtopic.p ... 03#p120403
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Macro Browser alt. r1.3

Post by John Doe »

Обновление.
  • Скрипт теперь добавляет в меню плагинов пункт Macro Browser alt.
    В меню конфигурации плагина также добавлен пункт, позволяющий настроить собственные макросы скрипта.
  • Поддержка MacroEx.
    Фильтр по клавише учитывает Double, Hold и последовательности, также см. подменю фильтров Misc.
  • Изменились умолчательные клавиши вызова скрипта, в частности теперь основная комбинация это LCtrlNumLock, включая вариации с двойным нажатием и удержанием.
    Требуется MacroEx (исправленный), или же можно переназначить на другие комбинации.
  • Макрос, на котором стоит курсор, запоминается между вызовами.
  • Разная косметика (описания макросов, нижний заголовок списка, и пр.)
В шапке.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Macro Browser alt. — обозреватель макросов

Post by sToLp »

Сделал себе
Но он возвращает только
Хотя через комстроку moon:require"MacroBrowserAlt" "Key" (после соответствующего нажатия шортката в ответ на запрос) выводится
Подскажите, пожалуйста, как можно было бы сделать правильно — чтобы макросом тоже вызывался бы полный список макросов, назначенных на запускающий макрос шорткат.
При этом хотелось бы в соответствующей строке макроса вместо конкретного шортката указать "Akey".
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Macro Browser alt. — обозреватель макросов

Post by John Doe »

sToLp wrote: чтобы макросом тоже вызывался бы полный список макросов, назначенных на запускающий макрос шорткат.
Вот так должно сработать:

Code: Select all

browseMacros("Key","lctrlshiftn")
sToLp wrote: При этом хотелось бы в соответствующей строке макроса вместо конкретного шортката указать "Akey".
Есть akey(1), но строку необходимо ещё "нормализовать": string.gsub(akey(1),"%f[%u]Alt","LAlt"):gsub("^Ctrl","LCtrl"):lower()

В следующей версии скорее всего исправлю, добавив в начало функции keymatch эту строку .
(Сразу этого не сделал, чтобы сократить код, выполняемый в цикле. Но наверно здесь это экономия на спичках)
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

Macro Browser alt. — обозреватель макросов

Post by AleXH »

John Doe wrote: key = string.gsub(key,"%f[%u]Alt","LAlt"):gsub("^Ctrl","LCtrl"):lower()
А почему не

Code: Select all

key = key:gsub("%f[%u]Alt","LAlt"):gsub("^Ctrl","LCtrl"):lower()
? Ansi вариант быстрее?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Macro Browser alt. — обозреватель макросов

Post by John Doe »

Дело в том, что frontier pattern не поддерживается библиотекой Selene Unicode.
Post Reply

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