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

Здесь выкладываются готовые к использованию макросы и скрипты.
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:

Post by John Doe »

Latest post of the previous page:

  • Более подробная информация по 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: 10823
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Re:

Post by HaRT »

John Doe wrote:чтобы после редактирования файла внесённые изменения вступили в силу - необходимо в списке нажать CtrlR.
Если это возможно, было бы здорово рисовать звёздочку при тех макросах, которые были изменены, но ещё не перегружены. Если в редактировавшемся файле несколько макросов, то может оказаться, что помечать придётся все скопом.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: GetMacroCopy

Post by Smitis »

У файла MacroBrowserLite.lua в начале файла отсутствует сигнатура UTF-8. Поэтому не все редакторы нормально его отображают.
Разум когда-нибудь победит.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: Re:

Post by John Doe »

Smitis
Ok

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

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

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

Post by John Doe »

  • Новая команда: восстановить последний (Last) использованный фильтр.
    Хоткей: 9 (или новый макрос на RCtrlShift9)
  • Пользовательский (Custom) фильтр, задаваемый выражением lua
    В выражении доступны идентификаторы полей таблицы макроса и глобальные идентификаторы.
    Например:
    Хоткей: 8 (или новый макрос на RCtrlShift8)
    Пользовательские выражения выполняются через pcall, поэтому ошибки не приводят к краху
    Также применил защищённые вызовы в других опасных местах
  • Пользовательский (Custom) режим сортировки списка, задаваемый выражением lua
    В выражении доступны таблицы сравниваемых макросов, в виде идентификаторов a и b, и глобальные идентификаторы
    Например:
  • Сортировка:
    - текущий режим отображается в заголовке
    - при сортировке не сбрасывается фильтр
    - хоткеи: Ctrl-F1..F7,F12
  • В скрипте используется модифицированная версия lua explorer
    Необходимо наличие в Macros\modules
    Для удобства прилагаю его и здесь.
    Макрос для независимого вызова Lua Explorer назначен на CtrlShiftF12
  • По хоткею AltF3 открывется окружение функции action
  • Макросы:
    В первом параметре функции Show указывается критерий фильтрации
    Он задаётся строкой (доступны: list Area File Mask Priority Flags Events Custom Last)
    Вторым параметром-строкой указывается значение фильтра (если не указать - запрашивается интерактивно).
    Пример:
    Показать макросы с непустым окружением: Show("Custom","next(getfenv(action))")
    (например может быть полезно для поиска необъявленных идентификаторов)

    Другие примеры см. в прилагаемых макросах.
    Также добавлено 2 макроса RCtrlShift8 и RCtrlShift9
P.S.
Есть ещё одна незаявленная бесполезная функция:
Макросы добавленные через far.AddMacro можно удалить по Del

Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: GetMacroCopy

Post by Shmuel »

Запускаем и нажимаем 0.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: GetMacroCopy

Post by John Doe »

Спасибо, исправил.
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

Re: GetMacroCopy

Post by Denis »

А как в новой версии вызывать CtrlShiftF12?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: GetMacroCopy

Post by John Doe »

Code: Select all

Macro { description = "Lua Explorer";
  area="Common"; key="CtrlShiftF12"; action=function()
    lua_explorer(_G,'_G')
  end
}
P.S.
Добавил макрос к файлу
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: GetMacroCopy

Post by Shmuel »

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

Re: GetMacroCopy

Post by John Doe »

Последнюю строку в файле удалите.
Я сразу исправил, но вы скачали быстрее )
Denis
Posts: 1444
Joined: Tue 05 Apr, 2005 18:12
Has thanked: 10 times
Been thanked: 5 times

Re: GetMacroCopy

Post by Denis »

Спасибо.

А может такие вещи уже стоит выкладывать на plugring?
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

Re: GetMacroCopy

Post by Smitis »

Может сделать MacroBrowserLite модулем? А то неудобно каждый раз макросы исправлять.
Разум когда-нибудь победит.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: GetMacroCopy

Post by Shmuel »

Есть ещё одна незаявленная бесполезная функция:
Макросы добавленные через far.AddMacro можно удалить по Del
После удаления макрос не удаляется из меню.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Re: GetMacroCopy

Post by John Doe »

Smitis wrote:Может сделать MacroBrowserLite модулем? А то неудобно каждый раз макросы исправлять.
А кто не даёт? Надо лишь положить файл в modules. Обратите внимание на строку

Code: Select all

--if using as module
if not Macro then return Show end
Соответственно подключать как local Show = require"MacroBrowserLite",
или даже так: action=require"MacroBrowserLite"

Но!
Не рекомендую.
Во-первых с каждой версией интерфейс меняется.
Во-вторых, планирую сделать сохранение пользовательских клавиш в базу.
Или зачем вам модуль?
Shmuel wrote:
Есть ещё одна незаявленная бесполезная функция:
Макросы добавленные через far.AddMacro можно удалить по Del
После удаления макрос не удаляется из меню.
Эту функцию добавил в процессе разбора работы MacroAdd.
Поскольку практической ценности она не не имеет, то совершенствовать бессмысленно.

Когда будет доступ к реальным макросам, а не их копиям, то можно будет доделать за компанию.
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

Re: GetMacroCopy

Post by Shmuel »

John Doe wrote:Эту функцию добавил в процессе разбора работы MacroAdd.
Поскольку практической ценности она не не имеет, то совершенствовать бессмысленно.
Бессмысленно спорить без толку.
Если фича у утилиты есть - должна быть сделана, как положено.
Если она не нужна - удаляется.
Post Reply

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