Page 7 of 10

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

Posted: Mon 29 Apr, 2013 20:21
by John Doe
Особенности

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

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

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

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

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


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

Posted: Thu 03 Jul, 2014 10:04
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 лишнее.
Почему?

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

Posted: Thu 03 Jul, 2014 12:56
by AleXH
Почему?
1. не несёт смысловой нагрузки
2. кривой инглиш
3. в остальных описаниях в подобных случаях двоеточия нет

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

Posted: Fri 04 Jul, 2014 11:54
by AleXH
При вызове lua:require"MacroBrowserAlt"() получаем , помещён в modules, и , если MBA помещён в scripts.

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

Posted: Fri 04 Jul, 2014 11:57
by John Doe
На самом деле при первом вызове ошибка в обоих случаях выглядит одинаково
(повторная попытка require даст другую ошибку)

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

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

Posted: Fri 04 Jul, 2014 14:09
by John Doe
До последнего времени идея выполнять макросы из списка (по Enter) мне казалась странной.
Однако судя по всему, это таки используется.
Действительно, есть же меню плагинов, почему не быть меню макросов.

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

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

P.S.
Связанное обсуждение в другой ветке форума: http://forum.farmanager.com/viewtopic.p ... 03#p120403

Macro Browser alt. r1.3

Posted: Fri 22 Aug, 2014 23:26
by John Doe
Обновление.
  • Скрипт теперь добавляет в меню плагинов пункт Macro Browser alt.
    В меню конфигурации плагина также добавлен пункт, позволяющий настроить собственные макросы скрипта.
  • Поддержка MacroEx.
    Фильтр по клавише учитывает Double, Hold и последовательности, также см. подменю фильтров Misc.
  • Изменились умолчательные клавиши вызова скрипта, в частности теперь основная комбинация это LCtrlNumLock, включая вариации с двойным нажатием и удержанием.
    Требуется MacroEx (исправленный), или же можно переназначить на другие комбинации.
  • Макрос, на котором стоит курсор, запоминается между вызовами.
  • Разная косметика (описания макросов, нижний заголовок списка, и пр.)
В шапке.

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

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

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

Posted: Wed 03 Dec, 2014 08:22
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 эту строку .
(Сразу этого не сделал, чтобы сократить код, выполняемый в цикле. Но наверно здесь это экономия на спичках)

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

Posted: Wed 03 Dec, 2014 09:47
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 вариант быстрее?

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

Posted: Wed 03 Dec, 2014 09:56
by John Doe
Дело в том, что frontier pattern не поддерживается библиотекой Selene Unicode.

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

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

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

Posted: Wed 03 Dec, 2014 13:11
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].

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

Posted: Wed 03 Dec, 2014 13:17
by John Doe
sToLp wrote: Изменил макрос:
Неправильно изменили.
sToLp wrote: Дополнил соответствующей строкой файл MacroBrowserAlt.lua
Этого достаточно.
А макрос верните как был сначала.

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

Posted: Wed 03 Dec, 2014 13:30
by sToLp
John Doe wrote:
sToLp wrote: Дополнил соответствующей строкой файл MacroBrowserAlt.lua
Этого достаточно.
А макрос верните как был сначала.

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

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

Posted: Wed 03 Dec, 2014 13:36
by John Doe
sToLp wrote: А с "Akey" — только одну позицию.
Я выше писал, что вместо "AKey" надо использовать akey(1).

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

Posted: Wed 03 Dec, 2014 13:42
by sToLp
Понял. Тупанул, нельзя несколько дел одновременно делать. Извиняюсь и благодарю! Всё ОК.

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

Posted: Wed 03 Dec, 2014 19:56
by sToLp
В связи с возможностью назначения нескольких макросов на шорткат с выставлением горячих клавиш для применения в образующихся меню макросов (см. совет zg "амперсанд поставить перед нужным символом" в поле description), всё чаще стали создаваться меню с повторяющимися хоткеями.
И избегать конфликтов этих хоткеев довольно напряжно, да и лишнего времени на это тратить как то жалко.
Поэтому напрашивается пожелание по возможности учесть это в дальнейших версиях Macro Browser alt.
То есть желательно бы появление чего-то типа дополнительного фильтра что ли, подобного реализованному в скрипте фильтра пользовательского меню от IgorZ.