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

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

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 658 times
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Macro Browser alt. r1

Post by John Doe »

Latest post of the previous page:

Обновление
  • Исправлены найденые ошибки
    Среди прочего: фильтр по макрообласти больше не срабатывает на части слова (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: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

Т.е. его можно кинуть в Profile\Macros\modules и вызывать из FarMenu.ini и это ничем не будет отличаться от Profile\Macros\scripts и вызова по хоткеям? Смысл кидать к скриптам только в том, чтобы откуда угодно можно было это всё вызвать?
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Wave wrote:Смысл кидать к скриптам только в том, чтобы откуда угодно можно было это всё вызвать?
Да.
Вообще кидать к скриптам имеет смысл, если вам не мешают все приложенные макросы.
Если же мешают, то можно положить в modules, и назначить свои макросы, выбрав только те действия, что вам нужны.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

FarMenu.ini прилагается, скопируйте оттуда.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

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

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

require"MacroBrowserAlt"("File",Editor.FileName);
Пользуюсь ФАРом больше 20 лет © собирательный.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

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

Или можно добавить макрос специально для диалога MacroBrowser, Menu.Id=="C5CB672A-104B-4402-B501-B31FC34714D0"
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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 шугает меньше :)

И хорошо бы, чтобы между вызовами сабжа при отображении списка макросов, запоминался макрос на котором стоит курсор.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Macro Browser alt. — r1.2

Post by John Doe »

Небольшое обновление
  • Убрана неработоспособная возможность удаления MCTL_ADDMACRO-макросов.
  • Добавлена новая команда (в списке макросов) CtrlShiftR — перезагрузка плагина LuaMacro
  • rebind: редактор при вставке шаблона (CtrlShiftF4) теперь открывается в utf-8
  • Косметика
  • Минимальная требуемая версия фара теперь 3971
В шапке.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

AleXH wrote:И хорошо бы, чтобы между вызовами сабжа при отображении списка макросов, запоминался макрос на котором стоит курсор.
Как-то не думал, что это может быть полезно...

Сценарий использования приведёте?

P.S.
Для себя в любом случае можете исправить.
Найти строку local pos,bk и перенести её до определения local function browseMacros(flt,...)
AleXH
Posts: 1000
Joined: Sun 12 Apr, 2009 05:21
Been thanked: 1 time

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

Post by AleXH »

Предлагаю во все дескрипшены добавить префикс MBA:, например description="MBA: Reload macros"
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

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

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

Post by AleXH »

MBA: list macros: by priority [choice]
MBA: list macros: by mask [choice]
MBA: list event handlers: by group [choice]
":" после macros, handlers лишнее.

Предлагаю к хелпу добавить хелп по ребинду.
Post Reply

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