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

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

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 410 times

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

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

Post by John Doe »

Latest post of the previous page:

John Doe wrote:Найти строку local pos,bk и перенести её до определения local function browseMacros(flt,...)
Есть вариант получше, поставить там такой обработчик:
  1. local Pos = {}
  2. Event { description="MBA internal (preserve cursor position between launches)";
  3.   group="DialogEvent";
  4.   condition=function(Event,param)
  5.     if Event==F.DE_DLGPROCEND and (param.Msg==F.DN_INITDIALOG or param.Msg==F.DN_CLOSE) then
  6.       local info = param.hDlg:send(F.DM_GETDIALOGINFO)
  7.       return info and info.Id==MBid
  8.     end
  9.   end;
  10.   action=function(Event,param)
  11.     if param.Msg==F.DN_INITDIALOG then
  12.       param.hDlg:send(F.DM_LISTSETCURPOS,1,Pos)
  13.     else --param.Msg==F.DN_CLOSE
  14.       Pos = param.hDlg:send(F.DM_LISTGETCURPOS)
  15.     end
  16.   end;
  17. }
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: 12598
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 34 times
Been thanked: 260 times

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

Post by John Doe »

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

Пока у нас не реализован тикет 0002590 выход один: код для восстановления позиции списка надо переместить в какой-либо файл, находящийся в папке scripts

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

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: 12598
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 34 times
Been thanked: 260 times

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: 107 times
Been thanked: 12 times

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

Post by sToLp »

Сделал себе
Но он возвращает только
Хотя через комстроку moon:require"MacroBrowserAlt" "Key" (после соответствующего нажатия шортката в ответ на запрос) выводится
Подскажите, пожалуйста, как можно было бы сделать правильно — чтобы макросом тоже вызывался бы полный список макросов, назначенных на запускающий макрос шорткат.
При этом хотелось бы в соответствующей строке макроса вместо конкретного шортката указать "Akey".

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

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: 12598
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 34 times
Been thanked: 260 times

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

Post by John Doe »

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

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

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

Post by AleXH »

Попробовал key = key:gsub("%f[%u]Alt","LAlt"):gsub("^Ctrl","LCtrl"):lower() - на первый взгляд оба варианта работают одинаково... А ваш пример на мантисе, да - по разному.
Last edited by AleXH on Wed 03 Dec, 2014 10:05, edited 1 time in total.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

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

Post by sToLp »

John Doe wrote:Вот так должно сработать:

Code: Select all

browseMacros("Key","lctrlshiftn")
Да, так получается. Спасибо!
John Doe wrote:
sToLp wrote:При этом хотелось бы в соответствующей строке макроса вместо конкретного шортката указать "Akey".
Есть akey(1), но строку необходимо ещё "нормализовать": string.gsub(akey(1),"%f[%u]Alt","LAlt"):gsub("^Ctrl","LCtrl"):lower()
Изменил макрос: . Но вернулся только один итог: .
John Doe wrote:В следующей версии скорее всего исправлю, добавив в начало функции keymatch эту строку .
Дополнил соответствующей строкой файл MacroBrowserAlt.lua, а в макросе указал browseMacros("Key","Akey"). И тоже вернулся только один итог.

При этом в заголовке меню Macro Browser alt.`а шорткат указывался во втором случае как [nAkey], а в третьем — как [Akey].

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

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

Post by John Doe »

sToLp wrote: Изменил макрос:
Неправильно изменили.
sToLp wrote: Дополнил соответствующей строкой файл MacroBrowserAlt.lua
Этого достаточно.
А макрос верните как был сначала.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

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

Post by sToLp »

John Doe wrote:
sToLp wrote: Дополнил соответствующей строкой файл MacroBrowserAlt.lua
Этого достаточно.
А макрос верните как был сначала.

Да, так работает — выдаёт полный список. А с "Akey" — только одну позицию.

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

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

Post by John Doe »

sToLp wrote: А с "Akey" — только одну позицию.
Я выше писал, что вместо "AKey" надо использовать akey(1).

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 times
Been thanked: 12 times

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

Post by sToLp »

Понял. Тупанул, нельзя несколько дел одновременно делать. Извиняюсь и благодарю! Всё ОК.

Post Reply

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