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

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

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

Post by John Doe » Mon 29 Apr, 2013 20:21

Особенности

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

Скрипт и функции всех макросов можно проверить никуда не устанавливая, через меню пользователя.
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 401 times

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 16:52

Latest post of the previous page:

John Doe, почему в конце Вашего макроса нет "return Show"?

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 16:57

Это же не модуль.

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 16:59

Почему не модуль? У меня, например, директория scripts давно уже в package.path. На мой взгляд, функцию Show было бы полезно вызывать не только из макросов.

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 17:05

gotar wrote:Почему не модуль? У меня, например, директория scripts давно уже в package.path.
Не считаю это хорошей практикой.

К тому же подозреваю что у вас определена глобальная функция Macro, и значит в момент require будут добавлены копии макросов.
В лучшем случае могу предложить сделать так: http://forum.farmanager.com/viewtopic.p ... 84#p108184
gotar wrote:На мой взгляд, функцию Show было бы полезно вызывать не только из макросов.
А откуда же вы хотите её вызывать, если не из макросов, и главное зачем?

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 17:11

Держать две одинаковые копии файла(одну для макросов, другую для функции Show в директории modules) совсем плохой вариант. Вы согласны с тем, что сделать доступной функцию Show было бы полезно?

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 17:14

А откуда же вы хотите её вызывать, если не из макросов, и главное зачем?
Из пользовательских меню, из других макросов, в общем там же где lua_explorer

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 17:19

Не надо 2 одинаковые копии. Держите 1 модуль, а в scripts только макросы.
Плюсом будет то, что можно создать свои макросы на любые клавиши, и при обновлении скрипта они не слетят.
Вы согласны с тем, что сделать доступной функцию Show было бы полезно?
В отличии от обсуждаемой lua_explorer это действительно функция широкого применения.

А из других макросов, из меню - это да, вопрос пока нерешённый.
Лучшего способа чем предложил выше не знаю.

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 17:29

Глобальная функция Macro, скрипт в директории macros и return Show (и других полезных функций) для Вас приемлемый вариант?
Last edited by gotar on Fri 03 May, 2013 18:06, edited 1 time in total.

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 18:02

Самостоятельная функция там 1. Но для полноценного её использования в макросах нужен доступ к вспомогательным функциям, которые передаются в Show в виде параметра.

Если бы я задумывал скрипт как модуль, то сделал бы всё иначе.
Возможно и переделаю когда-нибудь.
А пока лучший для вас вариант это добавить непосредственно перед макросами строку
return {Show=Show,doFilter=doFilter,filterBy=filterBy,listFilters=listFilters}

gotar
Posts: 316
Joined: Sun 06 Sep, 2009 12:34
Has thanked: 9 times

Re: GetMacroCopy

Post by gotar » Fri 03 May, 2013 18:10

Почему не

Code: Select all

return {Show,doFilter,filterBy,listFilters}

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 18:17

Это как вам удобнее

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

Re: GetMacroCopy

Post by Wave » Fri 03 May, 2013 19:19

John Doe wrote:- Исправлена эта и другие ошибки.
- Добавлены фильтры
- Изменились BreakKeys для фильтров
...
Поставил эту штуку попробовать — мама дорогая! Шикарно, шикарно! Единственное что, можно хотелку высказать? Разные режимы сортировки. В частности мне бы сортировку по описаниям, они у меня чуть детальней, чем макрообласти. Например:

AudioPlayer: prev file
MediaInfo: следующий файл
Dialog: Clear selection

все три макроса — в диалоговой области, но относятся два к разным плагинам, ещё один ко всем диалогам вообще.


Правильно я понял, что это один из минимум двух или трёх аналогов?

P.s. Ага, увидел LuaManager. А ещё вижу, что мне пора немного навести порядок среди макросов (и это только-только на тройку переехал)))
Пользуюсь ФАРом больше 20 лет © собирательный.

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

Re: GetMacroCopy

Post by John Doe » Fri 03 May, 2013 19:27

Варианты сортировки сделаю.

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

Post by John Doe » Fri 03 May, 2013 23:12

  • Более подробная информация по F3
  • Избавился от far.MacroPost (стоит перепроверить переход к файлам и открытие редактора, модального и немодального)
  • Новая команда по CtrlPgDn - переход к файлу и его открытие (как обычно - в позиции функции action)

    Уже писал, не знаю какие клавиши удобнее, например для эксперимента продублировал действие AltF4 на CtrlTab (открыть макрос в редакторе немодально, т.е. без возможности возврата обратно в список)
  • Новая команда для перегрузки макросов: CtrlR
    Кто не знает: чтобы после редактирования файла внесённые изменения вступили в силу - необходимо в списке нажать CtrlR.
    Также прилагается макрос для редактора, см. ниже.
  • Режимы сортировки, выбор из списка по нажатию CtrlF12: Area Key Descr Id File
    Выбранный режим сохраняется
Изменения в фильтрах:
  • Было и в прошлой версии, но обращаю внимание на то, что в фильтре по файлу есть отдельная группа [no file], куда попадают макросы из internal, а также добавленные с помощью MacroAdd: .
    Internal также можно определить отфильтровав по Priority (200)
  • Новые фильтры: по флагам, по группам событий
  • При фильтрации по Area или FileName курсор изначально устанавливается на значения, соответствующие текущей области/файлу
  • Снова изменил хоткеи для фильтров, вероятно окончательно

    Code: Select all

     Info:
      • F3       - Краткая информация о макросе
      • Enter    - Открыть таблицу макроса в lua explorer
    
     Edit:
      • F4       - Открыть макрос в модальном редакторе
                   и установить курсор на функцию action
      • AltF4    - Закрыть список и открыть макрос в редакторе
      • CtrlPgDn - Закрыть список, перейти к файлу с макросом,
                   и открыть макрос в редакторе
    
     Goto:
      • CtrlPgUp - Закрыть список и перейти к файлу с макросом
    
     Filters:
      • `        - список всех фильтров
      • 0        - Сбросить фильтр
      Активировать фильтр
      • 1        - по клавише (запрашивается интерактивно)
      • 2        - по области
      • 3        - по файлу
      • 4        - по маске
      • 5        - по флагам
      • 6        - по приоритету
      • 7        - события по группам
    
     Misc
      • CtrlF12  - выбор критерия для сортировки
      • CtrlR    - перезагрузить макросы
    
Изменения в макросах:
Common:
  • RCtrlShift` LCtrl` - выбор фильтра ("`" это знак под тильдой ~)
  • RCtrlShift1 LCtrlNumLock - фильтр по клавише (главный для меня макрос)
  • RCtrlShift2 - список макросов для текущей макрообласти
  • RCtrlShift3 - макросы определённые в текущем файле (открытом в редакторе/вьювере, или в панелях под курсором)
  • RCtrlShift4 - фильтр по маске
  • RCtrlShift5 - internal-макросы
  • RCtrlShift6 - автостартующие
  • RCtrlShift7 - события по группам
Editor (*.lua):
  • CtrlEnter CtrlR - Перезагрузка макросов
    Макросы перечитываются с диска, поэтому убедитесь что файл сохранён.
    (Есть расширенная версия, но её включу в другой раз.)
Макросов много, чтобы уменьшить вероятность конфликтов понизил их приоритет до 40.
Т.е. если у вас существует макрос на ту же клавишу - сработает ваш.

User avatar
HaRT
Moderator
Posts: 9139
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 90 times
Been thanked: 173 times

Re:

Post by HaRT » Sat 04 May, 2013 07:43

John Doe wrote:чтобы после редактирования файла внесённые изменения вступили в силу - необходимо в списке нажать CtrlR.
Если это возможно, было бы здорово рисовать звёздочку при тех макросах, которые были изменены, но ещё не перегружены. Если в редактировавшемся файле несколько макросов, то может оказаться, что помечать придётся все скопом.
Фар есть инструмент, а не нянька. © 2009 DrKnS

Smitis
Posts: 1594
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 38 times

Re: GetMacroCopy

Post by Smitis » Sat 04 May, 2013 08:34

У файла MacroBrowserLite.lua в начале файла отсутствует сигнатура UTF-8. Поэтому не все редакторы нормально его отображают.
Разум когда-нибудь победит.

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

Re: Re:

Post by John Doe » Sun 05 May, 2013 20:53

Smitis
Ok

HaRT wrote:Если это возможно, было бы здорово рисовать звёздочку при тех макросах, которые были изменены, но ещё не перегружены.
Невозможно определить изменённые.
Можно найти файлы изменённые уже после открытия утилиты, но это ничего нам не скажет о том, какие макросы в них менялись (и менялись ли вообще).
Даже если извратится ещё больше, и всё-таки вычислить эти макросы, то это всё равно не значит, что изменения не вступили в силу, потому что информации о том когда на самом деле перегружались макросы - нет.

Я например вообще предпочитаю перезагружать их в редакторе (макрос в комплекте).

P.S.
Выложенная версия содержит ошибку, проявляющуюся при пустом списке.
Исправлено ещё вчера, выложу как только протестирую внесённые с тех пор изменения.

Post Reply

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