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

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 12822
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 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 435 times

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

Macro Browser alt. r1.1

Post by John Doe »

Latest post of the previous page:

Небольшое обновление
  • Исправлено позиционирование в макросах 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: 12822
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

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

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

User avatar
John Doe
Бюрократ
Posts: 12822
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 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 шугает меньше :)

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

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

Macro Browser alt. — r1.2

Post by John Doe »

Небольшое обновление
  • Убрана неработоспособная возможность удаления MCTL_ADDMACRO-макросов.
  • Добавлена новая команда (в списке макросов) CtrlShiftR — перезагрузка плагина LuaMacro
  • rebind: редактор при вставке шаблона (CtrlShiftF4) теперь открывается в utf-8
  • Косметика
  • Минимальная требуемая версия фара теперь 3971
В шапке.

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

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: 12822
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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 лишнее.

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

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

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

Post by John Doe »

John Doe wrote:Найти строку local pos,bk и перенести её до определения local function browseMacros(flt,...)
Есть вариант получше, поставить там такой обработчик:
  1. local Pos = {}
  2. Event { description="MBA internal (preserve cursor position between launches)";
  3.   group="DialogEvent";
  4.   condition=function(Event,param)
  5.     if Event==F.DE_DLGPROCEND and (param.Msg==F.DN_INITDIALOG or param.Msg==F.DN_CLOSE) then
  6.       local info = param.hDlg:send(F.DM_GETDIALOGINFO)
  7.       return info and info.Id==MBid
  8.     end
  9.   end;
  10.   action=function(Event,param)
  11.     if param.Msg==F.DN_INITDIALOG then
  12.       param.hDlg:send(F.DM_LISTSETCURPOS,1,Pos)
  13.     else --param.Msg==F.DN_CLOSE
  14.       Pos = param.hDlg:send(F.DM_LISTGETCURPOS)
  15.     end
  16.   end;
  17. }
AleXH wrote:":" после macros, handlers лишнее.
Почему?

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

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

Post by AleXH »

Почему?
1. не несёт смысловой нагрузки
2. кривой инглиш
3. в остальных описаниях в подобных случаях двоеточия нет

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

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

Post by AleXH »

При вызове lua:require"MacroBrowserAlt"() получаем , помещён в modules, и , если MBA помещён в scripts.

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

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

Post by John Doe »

На самом деле при первом вызове ошибка в обоих случаях выглядит одинаково
(повторная попытка require даст другую ошибку)

Пока у нас не реализован тикет 0002590 выход один: код для восстановления позиции списка надо переместить в какой-либо файл, находящийся в папке scripts

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

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

Post by John Doe »

До последнего времени идея выполнять макросы из списка (по Enter) мне казалась странной.
Однако судя по всему, это таки используется.
Действительно, есть же меню плагинов, почему не быть меню макросов.

Но меню из 300 пунктов не очень удобно.
Вместо этого, практичнее иметь несколько меню (своё для каждой задачи) и вызывать макросом или из UserMenu.

Может быть стоит развить эту идею по максимуму ?

P.S.
Связанное обсуждение в другой ветке форума: http://forum.farmanager.com/viewtopic.p ... 03#p120403

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

Macro Browser alt. r1.3

Post by John Doe »

Обновление.
  • Скрипт теперь добавляет в меню плагинов пункт Macro Browser alt.
    В меню конфигурации плагина также добавлен пункт, позволяющий настроить собственные макросы скрипта.
  • Поддержка MacroEx.
    Фильтр по клавише учитывает Double, Hold и последовательности, также см. подменю фильтров Misc.
  • Изменились умолчательные клавиши вызова скрипта, в частности теперь основная комбинация это LCtrlNumLock, включая вариации с двойным нажатием и удержанием.
    Требуется MacroEx (исправленный), или же можно переназначить на другие комбинации.
  • Макрос, на котором стоит курсор, запоминается между вызовами.
  • Разная косметика (описания макросов, нижний заголовок списка, и пр.)
В шапке.

Post Reply

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