"FastMacro" через LuaManager

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12087
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 28 times
Been thanked: 153 times

"FastMacro" через LuaManager

Post by John Doe » Thu 06 Dec, 2018 11:46

Latest post of the previous page:

sToLp wrote:
Thu 06 Dec, 2018 10:30
К примеру — нажимаю CtrlShiftJ, появляется диалог приглашения, нажимаю клавишу или сочетание и получаю соответствующим образом наполненное меню LuaManager`а.
В LuaManager наверняка уже предусмотрена подобная функциональность.
Я верно понял, что достаточно однократно отобразить список, а не в цикле?

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

"FastMacro" через LuaManager

Post by John Doe » Thu 06 Dec, 2018 11:52

IgorZ wrote:
Thu 29 Nov, 2018 10:08
Получилось где-то так:
Вижу не проверяются флаги макросов.
И при проверке областей следует учитывать, что области автодополнения "прозрачны" для макросов.

IgorZ
Posts: 569
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 32 times

"FastMacro" через LuaManager

Post by IgorZ » Thu 06 Dec, 2018 11:54

John Doe wrote:
Thu 06 Dec, 2018 11:33
IgorZ wrote:
Thu 06 Dec, 2018 10:59
Так, с ходу, решения не вижу
far.NameToInputRecord или mf.key позволят проверить "корректность".
Точно, спасибо.

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

"FastMacro" через LuaManager

Post by sToLp » Thu 06 Dec, 2018 12:03

John Doe,
Прошу прощения, но я не понял, что значит:
однократно отобразить список, а не в цикле

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

"FastMacro" через LuaManager

Post by John Doe » Thu 06 Dec, 2018 12:23

Запустили макрос хоткеем, в ответ на приглашении ввели требуемую клавишу, получили список LuaManager, ей соответствующий.
Конец работы, для продолжения надо снова запустить макрос.

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

"FastMacro" через LuaManager

Post by sToLp » Thu 06 Dec, 2018 23:29

John Doe wrote:
Thu 06 Dec, 2018 12:23
Запустили макрос хоткеем, в ответ на приглашении ввели требуемую клавишу, получили список LuaManager, ей соответствующий.
Конец работы
Так ведь это же только для макроса конец работы. А для пользователя то это только начало работы со списком в макробраузере.

А как бы в данном случае проявлялось бы отображение списка в цикле? И чем бы оно могло бы быть полезно?

IgorZ
Posts: 569
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 32 times

"FastMacro" через LuaManager

Post by IgorZ » Fri 07 Dec, 2018 07:04

Изменённый вариант. Вызывается из меню выбора макроса клавишей F2 (просто для примера, можно поменять).
  1. local FN = ...
  2. local _,LM = pcall(require,"LuaManager")
  3. LM = type(LM)=="table" and LM or nil
  4. local MSMenuGuid = "165AA6E3-C89B-4F82-A0C5-C309243FD21B"
  5. Macro{
  6.   id="0427E52D-7AD5-4719-B8C2-12D275294E2A";
  7.   area="Menu";
  8.   key="F2";
  9.   priority=100;
  10.   condition=function() return LM and Menu.Id==MSMenuGuid end;
  11.   action=function()
  12. local a,k = Object.Title:match(" (%S+) | (%S+)$")
  13. Keys("Esc")
  14. LM({MaShow=true,KMShow=true,EvShow=false,MoShow=false,MIShow=false,PrShow=false,PMShow=false,AMShow=true,AFilter=a,KFilter=k,FFilter="*|"..FN})
  15.   end;
  16. }
Кстати, в LuaManager есть как программный способ фильтровать по клавише (используется в данном макросе), так и ручной: вызвать LuaManager, нажать CtrlK и ввести искомую клавиатурную комбинацию.

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

"FastMacro" через LuaManager

Post by John Doe » Fri 07 Dec, 2018 08:44

sToLp wrote:
Thu 06 Dec, 2018 23:29
А как бы в данном случае проявлялось бы отображение списка в цикле? И чем бы оно могло бы быть полезно?
Вы макрос с прошлой страницы не ставили?
viewtopic.php?p=146604#p146604

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

"FastMacro" через LuaManager

Post by sToLp » Fri 07 Dec, 2018 13:29

John Doe wrote:
Fri 07 Dec, 2018 08:44
Вы макрос с прошлой страницы не ставили?
Видимо, Вы имели ввиду макрос отсюда. Если это так, то да, пробовал. И, в таком случае, разницу понял. Спасибо за разъяснение! Разовое отображение списка представляется более полезным. А циклом, возможно, полезно искать макросы "на ощупь" и то, если их не очень много.
Last edited by sToLp on Fri 07 Dec, 2018 13:30, edited 1 time in total.

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

"FastMacro" через LuaManager

Post by sToLp » Fri 07 Dec, 2018 13:35

IgorZ wrote:
Fri 07 Dec, 2018 07:04
Изменённый вариант.
Спасибо! Интересное решение. Надо присмотреться к нему, приноровиться. С ходу кажется неожиданным, что список, если я только правильно понял, создаётся на основе ключа вызова меню выбора макроса, из которого запускается сабжевый макрос.

IgorZ
Posts: 569
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 9 times
Been thanked: 32 times

"FastMacro" через LuaManager

Post by IgorZ » Mon 10 Dec, 2018 09:38

Добавлен ещё один макрос: вывод всех макросов с невалидным key для текущей области. Клавиша: CtrlShiftF2Требует свежую (сегодняшнюю) веhсию LuaManager 5.0.3.
  1. local FN = ...
  2. local _,LM = pcall(require,"LuaManager")
  3. LM = type(LM)=="table" and LM or nil
  4. local MSMenuGuid = "165AA6E3-C89B-4F82-A0C5-C309243FD21B"
  5.  
  6. Macro{
  7.   id="0427E52D-7AD5-4719-B8C2-12D275294E2A";
  8.   area="Menu";
  9.   key="F2";
  10.   priority=100;
  11.   condition=function() return LM and Menu.Id==MSMenuGuid end;
  12.   action=function()
  13. local a,k = Object.Title:match(" (%S+) | (%S+)$")
  14. Keys("Esc")
  15. LM({MaShow=true,KMShow=true,EvShow=false,MoShow=false,MIShow=false,PrShow=false,PMShow=false,AMShow=true,AFilter=a,KFilter=k,FFilter="*|"..FN})
  16.   end;
  17. }
  18.  
  19. Macro{
  20.   id="126FD368-BEDE-413D-B894-254E592C0C03";
  21.   area="Common";
  22.   key="CtrlShiftF2";
  23.   priority=100;
  24.   condition=function() return LM end;
  25.   action=function()
  26. LM({MaShow=true,KMShow=true,EvShow=false,MoShow=false,MIShow=false,PrShow=false,PMShow=false,AFilter=Area.Current,KFilter="none"})
  27.   end;
  28. }

User avatar
sToLp
Posts: 929
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 106 times
Been thanked: 8 times

"FastMacro" через LuaManager

Post by sToLp » Mon 10 Dec, 2018 19:25

IgorZ wrote:
Mon 10 Dec, 2018 09:38
Добавлен ещё один макрос: вывод всех макросов с невалидным key для текущей области. Клавиша: CtrlShiftF2
Круто! Для углублённого ознакомления пока что времени недостаточно, но уже при беглом ознакомлении очень даже хорошо! Спасибо большое!

Post Reply

Return to “Обсуждение макросов”