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

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

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

Post by John Doe »

Особенности

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

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

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

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

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

Attachments
MacroBrowserAlt.7z
r1.3
(13.06 KiB) Downloaded 410 times

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

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

Post by John Doe »

Latest post of the previous page:

AleXH wrote:Уточню - лишь тех, кто в списке?
Так невозможно. Перегружаются все.
AleXH wrote:Не понял каким образом фильтр по расширению *.lua может помочь, когда практически все макросы на lua?
Вы ведь не только *.lua редактируете, но и *.cmd,*.txt и т.д. Для них то же сочетание клавиш может выполнять совсем другое действие.
AleXH wrote:Предполагается ли поддержка MoonScript макросов в сабже и в Macro Check на том же уровне, что и макросов на lua?
А разве для них нужна особая поддержка?
AleXH wrote:Есть ли поддержка в сабже следующих ситуаций?
1. Редактируем макрос для панелей на муне, хотим перезагрузить его, переключиться в панели (не закрывая редактора), протестировать результат.
2. Отредактировали несколько макросов, хотим перезагрузить все макросы (весь движок) без перезапуска FAR.
Сабж к требуемой вами функциональности имеет весьма косвенное отношение.
Вот собственно вся поддержка:
  1. Macro { description="Reload macros"; -- see advanced version here: http://forum.farmanager.com/viewtopic.php?f=60&t=8008
  2.   area="Editor";  key="CtrlEnter CtrlR"; filemask="*.lua,*.moon";  priority=40;
  3.   action=function() if far.MacroLoadAll() then far.Message("Macros reloaded","") end end;
  4. }
Это совершенно независимый от основного скрипта макрос.
Всё что он делает, это полностью перезагружает макросы командой far.MacroLoadAll().

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

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

Post by AleXH »

Сабж к требуемой вами функциональности имеет весьма косвенное отношение.
Вот собственно вся поддержка:
Да, я так себе и сделал - добавил маску *.moon.

А что насчёт Macro Check - там не будет никаких артефактов от добавления *.moon?

В панелях вызываю сабж - F11 - Macro Browser - list autostart macros, получаю

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

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

Post by John Doe »

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

Что такое Macro Check?

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

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

Post by AleXH »

Macro_Check_Reload_Execute.lua

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

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

Post by John Doe »

AleXH wrote:Macro_Check_Reload_Execute.lua
Для него есть отдельная тема.
Вкратце: добавить "*.moon" просто так недостаточно.
В панелях вызываю сабж - F11 - Macro Browser - list autostart macros, получаю [...]
Связано с изменением способа хранения флагов в плагине LuaMacro.
У себя давно исправил.

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

Macro Browser alt. r1

Post by John Doe »

Обновление
  • Исправлены найденые ошибки
    Среди прочего: фильтр по макрообласти больше не срабатывает на части слова (Shell ≠ ShellAutoCompletion)
  • Адаптация к изменениям в плагине LuaMacro
    (например поле flags стало набором флагов, а для internal-макросов теперь не верно priority==200)
    Поддержка moonscript-макросов (также см. в новом дополнительном подменю фильтров Misc)
  • Комбинации клавиш приведены в соответствие со штатной утилитой mbrowser, недостающие функции — добавлены
    • Действия клавиш F4/Alt-F4 поменялись местами.
    • Клавиша Ctrl-H для переключения режима показа только активных макросов, т.е текущая макрообласть + общие.
      При этом Common-макросы в отличии от mbrowser не помечаются галкой (неважно).
    • Повторные нажатия клавиш сортировки (Ctrl-F1..F12) переключает между прямым и обратным порядком.
    • В качестве критерия сортировки по макрообласти используется символьное представление, а не строка.
    • Информация о макросе отображаемая по F3 соответствует той, что отображает mbrowser.
      Кроме того: •длинные значения не съезжают (можно прокрутить Alt-стрелками), •в заголовке отображается тип макроса (Macro/Internal/MCTL_ADDMACRO), •неприменимые для данного типа макроса поля помечаются как n/a.
    • Enter служит для запуска макроса. В отличии от mbrowser не производится никаких проверок на соответствие макрообласти, истинность condition и пр. (Предполагается что пользователь знает чего хочет)
      Возможно запустить даже обработчики событий.
  • Изменения в комбинациях клавиш и косметические изменения
    • Просмотр таблицы макроса переехал на клавишу Ctrl-PgDn (Enter занят).
    • По нажатию 3 в списке остаются только макросы, определённые в том же файле, что и макрос под курсором.
      А комбинация Ctrl-3 позволяет выбрать файл для фильтрации из списка.
    • Сброс/восстановление фильтра теперь выполняется одной клавишей — Backspace (последний использованный фильтр запоминается между вызовами в пределах текущей сессии и в любой момент может быть восстановлен).
    • Пользовательский фильтр переехал на 0.
    • Пользовательская сортировка теперь переключается по Ctrl-F10.
      Ctrl-F11 служит для того чтобы изменить выражение, задающее критерий.
      Упрощён способ задания выражения для пользовательской сортировки, например:
    • Косметические изменения в строке заголовка.
    • Возможность изменять ширину столбца с названиями клавиш (Ctrl-стрелки).
  • Новое
    • Разные полезные дополнительные фильтры теперь собраны в подменю Misc, доступном по нажатию 9 (или из списка по ~, а также из макросов).
    • Экспериментально: при сортировке по имени файла (Ctrl-F6) производится группировка макросов в секции по имени файла.
  • Изменения в макросах
    • "Интерактивная" настройка комбинаций собственных макросов удалена (скоро будет rebind, работающий не только для собственных).
    • Приоритет уменьшен до 30, чтобы устранить потенциальный конфликт с Common-макросами пользователя.
      (Возможно есть смысл убрать клавиши из всех определений, чтобы пользователь назначил только те, что ему нужны)
    • Добавлено несколько макросов, без шорткатов (скоро появится возможность назначить клавиши интерактивно, а пока можно просто изменить поле keys).
    • Скрипт и функции всех макросов можно проверить никуда не устанавливая, через меню пользователя.
      FarMenu.ini прилагается .
    • Если положить MacroBrowserAlt.lua в папку Macros\modules, то его можно использовать в качестве модуля (для собственных макросов, или для меню пользователя:
Скачать можно из шапки.

User avatar
Wave
Posts: 1771
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

Т.е. его можно кинуть в Profile\Macros\modules и вызывать из FarMenu.ini и это ничем не будет отличаться от Profile\Macros\scripts и вызова по хоткеям? Смысл кидать к скриптам только в том, чтобы откуда угодно можно было это всё вызвать?
Пользуюсь ФАРом больше 20 лет © собирательный.

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

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

Post by John Doe »

Wave wrote:Смысл кидать к скриптам только в том, чтобы откуда угодно можно было это всё вызвать?
Да.
Вообще кидать к скриптам имеет смысл, если вам не мешают все приложенные макросы.
Если же мешают, то можно положить в modules, и назначить свои макросы, выбрав только те действия, что вам нужны.

User avatar
Wave
Posts: 1771
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

Как правильно тогда сделать что-то вроде этого? Ругань на то, что getCurFile — nil
require"MacroBrowserAlt";
browseMacros("File",getCurFile())

(У меня большой (и очень примитивный, с редактируемым вручную меню) макрос, который в редакторе даёт аналог FarMenu.ini)
Last edited by Wave on Mon 30 Jun, 2014 20:13, edited 1 time in total.
Пользуюсь ФАРом больше 20 лет © собирательный.

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

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

Post by John Doe »

FarMenu.ini прилагается, скопируйте оттуда.

User avatar
Wave
Posts: 1771
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 4 times
Been thanked: 16 times

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

Post by Wave »

require"MacroBrowserAlt"("File",APanel.Current) ?

Понял, спасибо.

require"MacroBrowserAlt"("File",Editor.FileName);
Пользуюсь ФАРом больше 20 лет © собирательный.

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

Macro Browser alt. r1.1

Post by John Doe »

Небольшое обновление
  • Исправлено позиционирование в макросах Moonscript
  • Удалена поддержка события CommandLine
В шапке.

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

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

Post by AleXH »

John Doe wrote:
Ниже предлагается простое централизованное решение, позволяющее отключить любой сторонний макрос, или переопределить его клавиатурную комбинацию.
Прототип обсуждался ранее, а теперь всё это можно делать в MacroBrowser'е.
  • Del — запретить/разрешить макрос. Запрещённый макрос отображается серым.
  • ShiftF4 — (пере)назначить сочетание клавиш.
    В диалоге можно указать несколько клавиш или регэксп. Пустая строка отменяет переназначение.
    После этого все макросы перезагружаются, чтобы изменения вступили в силу.
    Переназначенные макросы индицируются звёздочкой перед клавишей.
Все настройки (состояние запрета и переназначенные клавиши) сохраняются в базе, и загружаются при запуске фара.
Также поддерживается альтернативный способ хранения настроек, в файле %FARPROFILE%\Macros\scripts\bindings.

Всё что требуется для работы перечисленных функций — это подключить в _macroinit.lua модуль rebind: require"rebind".
На практике полезно дополнительно настроить модуль:

Об идентификаторах макросов:

В MacroBrowser alt. уже встроенна поддержка модуля rebind.
Дополнительно к перечисленным выше комбинациям клавиш также расширяется дополнительное меню фильтров Misc,
добавляются такие пункты:
John Doe, имхо вместо DEL лучше использовать Space - более ожидаемо и не так стрёмно, но да, с помощью сабжа можно (наверное) и переназначить :)

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

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

Post by John Doe »

Нет, с помощью сабжа не получится переназначить, т.к. это не макрос, а BreakKey.
В строке 830 можно исправить/добавить.

Или можно добавить макрос специально для диалога MacroBrowser, Menu.Id=="C5CB672A-104B-4402-B501-B31FC34714D0"

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

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

Post by John Doe »

AleXH wrote:Space - [...] не так стрёмно
Психологический фактор я как-то не предусмотрел )
И кстати для макросов, добавленных с помощью far.MacroAdd, клавиша Del предназначена выполнять удаление.

Можно попробовать на примере:
  • Добавить: lua:far.MacroAdd ("MACROAREA_SHELL", nil, "CtrlF3", "msgbox('added on the fly')")
    Отфильтровать: меню Misc (RCtrlShift9) \ MCTL_ADDMACRO
    Удалить: Del
Update:
Ага, лучше пока не пробовать, тут какая-то ошибка в LuaFAR:

Code: Select all

bad argument #1 to 'MacroDelete' (FarAddMacroData expected, got userdata)

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

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

Post by AleXH »

  1. {BreakKey="DELETE",           itemAct=delMacro},
delMacro как-то сурово, disableMacro шугает меньше :)

И хорошо бы, чтобы между вызовами сабжа при отображении списка макросов, запоминался макрос на котором стоит курсор.

Post Reply

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