FastMacro – Быстрый поиск доступных макросов

Здесь обсуждается всё, что касается макросов.
LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Tue 20 Nov, 2018 21:43

По нажатию клавиш (или их комбинаций) в списке скриптов будут оставаться только те, у которых эта клавиша(или комбинация) присутствует в ключе

Запуск: CtrlAltM
Настройки: переменная gConfig в начале скрипта.
Клавиши, не задействованные в gConfig:
Enter – запуск макроса
Esc – отмена последнего фильтра для ключа или отмена поиска
Up,Down – перемещение по списку
Остальные клавиши (или их комбинации) – установка/сброс фильтра для ключа

Нюансы:
1. Если при запуске скрипта вывыдятся ненужные меню или диалоги, нужно установить gConfig.precheck в false
2. Может использоваться совместно со SmartMenuFilter (viewtopic.php?f=60&t=8463).
3. Для быстрого листания длинного списка можно использовать макрос viewtopic.php?p=151729#p151729 (автор sToLp)

fastmacro20.lua.7z
(3.77 KiB) Downloaded 13 times
Last edited by LAT on Sun 09 Dec, 2018 16:42, edited 8 times in total.

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

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Wed 21 Nov, 2018 09:37

LAT,
Эта функция есть в обозревателе макросов "Macro Browser alt." и её можно вызвать отдельным макросом тоже.

И тем не менее Ваш макрос очень интересен и полезен.


LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Wed 21 Nov, 2018 22:27

sToLp wrote:
Wed 21 Nov, 2018 09:37
1. При наличии макроса Plugin.BackgroundCopy.lua (см. в посте tstr Чт 14 мар, 2013 11:39 под спойлером) наблюдается следующее:
Вызываю сабжевый макрос (в области Shell, Dialog, Menu, или Editor), появляется меню макроса и я тут же его сбрасываю, а на экране остаётся меню "Команды плагинов".
Не получилось воспроизвести.
sToLp wrote:
Wed 21 Nov, 2018 09:37
2. В популярной сборке VictorVG/FarUE3_x86 с руборда установлен макрос Common_CtrlAltMenuDisk.lua и сабжевый с ним конфликтует
В CtrlAltMenuDisk функция TestCond, используемая для condition, рассчитывает на параметр-строку. А приходит nil. Ошибка возникает при проверке условия запуска этого скрипта из других скриптов (например, из данного или из LuaManager).
В новой версии добавил защиту от таких ситуаций. (А заодно исправил бажок с фильтром, и сделал сообщение, если при выборе скрипта условие запуска не выполняется.)
Но, имхо, по-хорошему, нужно бы поставить защиту и в CtrlAltMenuDisk: например первой строкой в

Code: Select all

function TestCond(key)
поставить

Code: Select all

if not key then return false end
И, наверное, стоит сообщить о возникшем нюансе автору CtrlAltMenuDisk. Тем более, что при попытке запуска из MacroBrowserAlt тоже выскакивает ошибка (только другая).

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

FastMacro – Быстрый поиск доступных макросов

Post by John Doe » Thu 22 Nov, 2018 08:06

LAT wrote:
Wed 21 Nov, 2018 22:27
нужно бы поставить защиту и в CtrlAltMenuDisk
Зачем?
LAT wrote:
Wed 21 Nov, 2018 22:27
при попытке запуска из MacroBrowserAlt тоже выскакивает ошибка (только другая).
У меня не выскакивает, но даже если бы выскакивало - это была бы проблема MacroBrowserAlt.

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

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Thu 22 Nov, 2018 09:37

LAT wrote:
Wed 21 Nov, 2018 22:27
В новой версии добавил защиту от таких ситуаций. (А заодно исправил бажок с фильтром, и сделал сообщение, если при выборе скрипта условие запуска не выполняется.)
Спасибо!
LAT wrote:
Wed 21 Nov, 2018 22:27
И, наверное, стоит сообщить о возникшем нюансе автору CtrlAltMenuDisk.
А сами то чего? Стесняетесь?
LAT wrote:
Wed 21 Nov, 2018 22:27
Не получилось воспроизвести.
В win10x64 LTSB с fastmacro9.lua .
А вот при вызове fastmacro10.lua упомянутого нюанса .
Но вот если потом сбросить меню кликом мышки за его пределами, то .

LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Thu 22 Nov, 2018 14:12

sToLp wrote:
Thu 22 Nov, 2018 09:37
...если потом сбросить меню кликом мышки за его пределами, то выскакивает ошибка
О таком развитии событий я не подумал :). Вроде бы исправил в fastmacro11.

LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Fri 23 Nov, 2018 21:18

v14.
1) [кажется] навел порядок в регулярных выражениях
2) для перемещения оставлены только Up и Down
3) Возвращена смена языка при xlat-е
4) комбинации клавиш можно использовать не только для установки фильтра , но и для сброса

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

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Sat 24 Nov, 2018 10:58

LAT wrote:
Fri 23 Nov, 2018 21:18
v14.
Спасибо, что развиваете макрос!
А ему, на мой взгляд, есть куда развиваться.
Например, желательно бы решить вопрос, как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
для перемещения оставлены только Up и Down
У меня в коллекции макросов достаточно много и мне не удобно перемещение по меню только по одной позиции за раз. Поэтому я для себя сделал . Он, по методу John Doe, по двойному нажатию на Up и Down, листает меню как по PgUp и PgDn, соответственно.
Last edited by sToLp on Sat 24 Nov, 2018 11:09, edited 1 time in total.

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

FastMacro – Быстрый поиск доступных макросов

Post by John Doe » Sat 24 Nov, 2018 12:00

sToLp wrote:
Sat 24 Nov, 2018 10:58
как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
В современном состоянии макроязыка нужды в таких макросов нет.
(Забыл про макросы запускаемые MacroEx)

Вычленить их можно в MacroBrowserAlt, если актуально, то пишите в соответствующей теме.
Last edited by John Doe on Sat 24 Nov, 2018 12:26, edited 1 time in total.

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

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Mon 03 Dec, 2018 15:34

LAT,
Макрос однозначно полезен. Особенно если не установлены ни MacroBrowserAlt, ни LuaManager.


LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Thu 06 Dec, 2018 21:21

sToLp wrote:
Sat 24 Nov, 2018 10:58
...желательно бы решить вопрос, как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
А что имеется в виду под макросами с невалидными ключами, и зачем они нужны?

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

FastMacro – Быстрый поиск доступных макросов

Post by sToLp » Thu 06 Dec, 2018 22:34

LAT wrote:
Thu 06 Dec, 2018 21:21
А что имеется в виду под макросами с невалидными ключами, и зачем они нужны?
К невалидным обычно относят любые ключи, не соответствующими стандартным, в т.ч. макросы без ключа. Чаще всего невалидные ключи используются для вызова макросов из других макросов функцией eval, гораздо реже они возникают по ошибке.

LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Thu 06 Dec, 2018 22:51

sToLp wrote:
Thu 06 Dec, 2018 22:34
sToLp wrote:
Sat 24 Nov, 2018 10:58
...желательно бы решить вопрос, как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
К невалидным обычно относят любые ключи, не соответствующими стандартным, в т.ч. макросы без ключа. Чаще всего невалидные ключи используются для вызова макросов из других макросов функцией eval, гораздо реже они возникают по ошибке.
Т.е. это те, которым в качестве ключа назначена пустая строка или же набор символов, не соответствующий какой-либо комбинации клавиш. Так они вроде бы показываются в общем списке (только для ключей-пустых строк в качестве клавиши стоит «none»).

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

FastMacro – Быстрый поиск доступных макросов

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

LAT wrote:
Thu 06 Dec, 2018 22:51
Так они вроде бы показываются в общем списке
Да, и в нём тонут, особенно если макросов множество. Я, например, насчитал в своей тестовой сборке макросов 82 макроса с невалидными ключами. А сам список всех макросов занимает несколько страниц. Вот поэтому их и желательно вычленить. И Ваш вариант их вычленения был бы особо ценным из-за отсутствия его привязки к макробраузерам.

LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Fri 07 Dec, 2018 16:59

sToLp wrote:
Sat 24 Nov, 2018 10:58
…я для себя сделал . Он, по методу John Doe, по двойному нажатию на Up и Down, листает меню как по PgUp и PgDn, соответственно.
Попробовал, как-то неудобно (непривычно?): если хочется сместиться и не на одну строку, но и не на целую страницу, а, например, на 2-3 строки, приходится делать паузы между нажатиями. Что раздражает.
ЗЫ. Насколько я понимаю, скрипт реагирует не только на двойное нажатие одной и той же клавиши (вверх или вниз), но и разных (вверх-вниз или вниз-вверх).
ЗЗЫ. Есть ли у такого приема преимущество перед использованием waitkey?

LAT
Posts: 186
Joined: Thu 21 Jan, 2010 20:00
Has thanked: 5 times
Been thanked: 7 times

FastMacro – Быстрый поиск доступных макросов

Post by LAT » Fri 07 Dec, 2018 17:24

sToLp wrote:
Thu 06 Dec, 2018 23:17
...Я, например, насчитал в своей тестовой сборке макросов 82 макроса с невалидными ключами. А сам список всех макросов занимает несколько страниц. Вот поэтому их и желательно вычленить...
Отфильтровать макросы, у которых в качестве ключа назначена пустая строка, вроде бы не сложно. А вот если в качестве ключа указан какой-нибудь мусор, даже не представляю разумного способа определить это... mf.key не дружит с регэкспами, плюс плохо реагирует на LCtrl, LAlt, может, еще на что-то.

Post Reply

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