Page 9 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

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


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

Posted: Fri 05 Dec, 2014 21:50
by sToLp

Latest post of the previous page:

John Doe wrote:найдите и удалите подстроку FMENU_SHOWAMPERSAND=1,
Опа: и в меню обозревателя макросов Macro Browser alt. проявились хоткеи, назначенные пользователями макросам! Да Вы ещё и фокусник, уважаемый John Doe! Конечно так значительно удобнее! Большое спасибо! И дальнейших Вам успехов в совершенствовании обозревателя!

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

Posted: Fri 05 Dec, 2014 21:56
by John Doe
Хоткеи появились, но кое-где у вас наверняка рамки съехали.

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

Posted: Fri 05 Dec, 2014 22:57
by sToLp
Не-а. Покрутил всякие меню Macro Browser alt. по-разному, и вроде всё в порядке. Но может потому, что у меня сейчас экран широченный?

А в целом очень здорово! Особенно в совокупности с ConcurrentHotkeys.lua и ConcurrentHotkeys2.lua!
Второй вариант, правда, в Macro Browser alt. буксует — позиционирует только на первое вхождение. И оба варианта объяснимо не работают пока с хоткеями-цифрами, т.к. цифры в обозревателе заточены под фильтры. Но, ведь, лиха беда начало. А здесь то уже и не начало вовсе, а мощное продолжение!

Про третий вариант ConcurrentHotkeys в той теме сообщил.

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

Posted: Sat 06 Dec, 2014 12:04
by sToLp
В теме "Улучшение меню с дублирующимися хоткеями" изложил очередную свою хотелку, реализация которой в МВА также весьма желательна.
sToLp wrote: А нельзя ли ещё сделать так, чтобы после сброса пользователем отфильтрованного меню (по Esc или F10) происходил возврат к родительскому меню?

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

Posted: Sat 06 Dec, 2014 13:54
by John Doe
Скорее всего вас устроит двукратное нажатие BS.

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

Posted: Sat 06 Dec, 2014 17:03
by sToLp
John Doe

За неимением гербовой пишут на простой, разумеется.

А в данном случае Ваш макрос "Reset filters" выступает именно в роли "гербовой". И он устраивает вполне. Большое спасибо за очередной подарок пользователям!

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

Posted: Sat 24 Nov, 2018 13:33
by sToLp
John Doe wrote: Sat 24 Nov, 2018 12:00
sToLp wrote: Sat 24 Nov, 2018 10:58 как вычленять макросы с невалидными ключами, которые используются для вызова макросов из макросов функцией eval.
Вычленить их можно в MacroBrowserAlt, если актуально, то пишите в соответствующей теме.
Весьма даже актуально. Например, для развития темы Индицировать привязку шортката к нативной команде Фара мне нужно сформировать массу макросов, в которых для оперативных переходов от одних меню к другим требуются невалидные ключи. Есть у меня и другие макросы и задумки макросов, в которых также целенаправленно применяются невалидные ключи.

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

Posted: Sat 24 Nov, 2018 14:59
by John Doe
Такая возможность предусмотрена пользовательским фильтром, доступным из макробраузера по клавише 0 (как и сказано в справке).
Или же макробраузер можно сразу открыть отфильтрованным, используя штатный макрос на RCtrlNumLock-0.

В открывшемся диалоге нужно ввести условие отбора макросов.
В данном случае одной строкой вводить не очень удобно, но тем не менее:

Code: Select all

return key and not keyregex and 
(function(keys)
  for k in keys:gmatch"%S+" do
    k = k:lower():gsub("^lctrl","ctrl"):gsub("^lalt","alt"):gsub("ctrllalt","ctrlalt")
    if not far.NameToInputRecord(k) and not k:match"%w.?[-:]." then return true end
  end
end)(key)
(макросы MacroEx исключаются из списка одним регэкспом %w.?[-:]. для простоты, но можно сделать и точнее)

Когда-нибудь добавлю этот фильтр в поставку.

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

Posted: Sat 24 Nov, 2018 21:09
by sToLp
John Doe wrote: Sat 24 Nov, 2018 14:59 Такая возможность предусмотрена пользовательским фильтром
Вот, спасибо! Так стало на много удобнее.
штатный макрос на RCtrlNumLock-0
Увы, запустить этот макрос у меня ни как не получилось. Уж и ключ другой подставлял, и priority убирал и увеличивал...
В открывшемся диалоге нужно ввести условие отбора макросов.
Хорошо, что MBA и между сессиями Far`а запоминает введённое!
Но, кстати, неплохо бы к этому и без того не простому условию добавить ещё и задание не выводить макросы, которым совсем не назначены ключи. Но и сделать бы их вывод отдельным.
Когда-нибудь добавлю этот фильтр в поставку.
Было бы здорово.

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

Posted: Sun 25 Nov, 2018 08:06
by John Doe
sToLp wrote: Sat 24 Nov, 2018 21:09 Увы, запустить этот макрос у меня ни как не получилось. Уж и ключ другой подставлял, и priority убирал и увеличивал...
Так свой сделайте по образцу.
sToLp wrote: Sat 24 Nov, 2018 21:09 Хорошо, что MBA и между сессиями Far`а запоминает введённое!
В макросе если указать в параметрах строку-фильтр, то список будет сразу открываться, без запроса.
sToLp wrote: Sat 24 Nov, 2018 21:09 добавить ещё и задание не выводить макросы, которым совсем не назначены ключи. Но и сделать бы их вывод отдельным.
Добавьте, это, и что угодно. Именно для этого и задумывался пользовательский фильтр.

Можно макросом, можно в меню пользователя, см. описание и примеры из комплекта.

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

Posted: Sun 25 Nov, 2018 12:05
by sToLp
John Doe wrote: Sun 25 Nov, 2018 08:06
Спасибо за рекомендации! Прислушался к ним и собрал , обеспечивающие вывод именно тех списков, которые в данное время мне очень нужны.

upd: в макросе с description="mb&a: макросы с невалидными непустыми ключами и без '_' в начале (поJD) CtrlP"; сделана правка по рекомендациям, приведённым John Doe в постах ниже.

upd2: сделана ещё одна правка — вместо k:match('none' or '') в одном макросе указано key=='none', а в другом — указано key~='none' и переставлено на более подходящее место.

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

Posted: Sun 25 Nov, 2018 13:41
by John Doe
Отлично.

В первом макросе я бы рекомендовал добавленные вами проверки делать до вызова функции.

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

Posted: Sun 25 Nov, 2018 16:32
by sToLp
John Doe wrote: Sun 25 Nov, 2018 13:41добавленные проверки делать до вызова функции
Проверки на пустые ключи и на начинающиеся со знака подчёркивания поставил перед not far.NameToInputRecord(k), но на результате работы Macro Browser alt. различия не увидел. Или я чего-то не досмотрел?

Поясните, пожалуйста, чем такое расположение проверок предпочтительнее?

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

Posted: Mon 26 Nov, 2018 08:14
by John Doe
sToLp wrote: Sun 25 Nov, 2018 16:32 чем такое расположение проверок предпочтительнее
У функции в этом случае получится более узкая задача.
Впоследствии легче будет исправлять и изменять код.

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

Posted: Mon 26 Nov, 2018 09:40
by John Doe
Уточнение: функция в данном случае содержит цикл, где разбирает строку на отдельные ключи.
И там уже бесполезно сравнивать с пустой строкой, такое условие никогда не выполнится (поэтому это необходимо сделать раньше).
"none" тоже врядли стоит искать в строке где есть нескольких ключей (поэтому тоже можно проверять раньше).
А вот что касается ключей, начинающихся с "_", то тут зависит от того, могут ли они оказаться в одной строке с другими: если могут, то проверку надо оставить в цикле.

Но правильнее проверять так: k:match"^_." или (k:sub(1,1)=="_" and k:len()>1).

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

Posted: Mon 26 Nov, 2018 13:17
by sToLp
John Doe,
Большое спасибо за разъяснение и примеры! С интересом опробовал всё, что Вы посоветовали.
правильнее проверять так: k:match"^_." или (k:sub(1,1)=="_" and k:len()>1).
Вот теперь я увидел и практический результат тоже. Замена поставленного после функции k:match'_' на любой из приведённых Вами примеров в моём случае даёт добавку в выводимый MBA перечень двух макросов. С ключами "AltShift/ cmp_winmerge" и "префиксы11_ _". В прежнем варианте эти макросы в перечень не попадали.