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

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

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

Post by John Doe » Thu 03 Jul, 2014 10:04

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 » Thu 03 Jul, 2014 12:56

Почему?
1. не несёт смысловой нагрузки
2. кривой инглиш
3. в остальных описаниях в подобных случаях двоеточия нет

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

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

Post by AleXH » Fri 04 Jul, 2014 11:54

При вызове lua:require"MacroBrowserAlt"() получаем , помещён в modules, и , если MBA помещён в scripts.

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

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

Post by John Doe » Fri 04 Jul, 2014 11:57

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

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

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

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

Post by John Doe » Fri 04 Jul, 2014 14:09

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

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

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

P.S.
Связанное обсуждение в другой ветке форума: viewtopic.php?p=120403#p120403

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

Macro Browser alt. r1.3

Post by John Doe » Fri 22 Aug, 2014 23:26

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

User avatar
sToLp
Posts: 763
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

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

Post by sToLp » Tue 02 Dec, 2014 22:17

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

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

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

Post by John Doe » Wed 03 Dec, 2014 08:22

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 » Wed 03 Dec, 2014 09:47

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: 11409
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Wed 03 Dec, 2014 09:56

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

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

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

Post by AleXH » Wed 03 Dec, 2014 10:00

Попробовал 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: 763
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

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

Post by sToLp » Wed 03 Dec, 2014 13:11

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: 11409
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 17 times
Been thanked: 101 times

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

Post by John Doe » Wed 03 Dec, 2014 13:17

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

User avatar
sToLp
Posts: 763
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

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

Post by sToLp » Wed 03 Dec, 2014 13:30

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

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

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

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

Post by John Doe » Wed 03 Dec, 2014 13:36

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

User avatar
sToLp
Posts: 763
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

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

Post by sToLp » Wed 03 Dec, 2014 13:42

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

User avatar
sToLp
Posts: 763
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 56 times
Been thanked: 5 times

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

Post by sToLp » Wed 03 Dec, 2014 19:56

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

Post Reply

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