Менеджер Lua-скриптов для Farа

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.









Требуемая версия Far 3.0.5210+.

Начиная с версии 4.0, скрипт выполнен в виде модуля и набора вызывающих макросов.

Attachments
LuaManager.6.0.2.7z
Версия для Far 3.0.0.5934+
(65.47 KiB) Downloaded 82 times
LuaManager.5.2.0.7z
Версия для Far 3.0.0.5210+
(58.78 KiB) Downloaded 215 times
LuaManager.5.0.6.7z
Последняя опубликованная версия, поддерживающая Far 3.0.0.4000 и выше
(59.02 KiB) Downloaded 347 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 510 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

Latest post of the previous page:

John Doe wrote: Tue 31 Oct, 2017 08:34мне например пока не ясно, полезны ли вообще эти многострочные описания макросов
Полагаю, что если они приживутся, а, похоже, что приживаются, то в глобальную функцию Macro может не потребоваться и добавление дополнительного поля.
Или у Вас насчёт этого другие резоны?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

sToLp, у меня нет
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

IgorZ, пожелание: отключаемый столбец с именем файла (без пути)
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

John Doe wrote: Tue 31 Oct, 2017 12:24
IgorZ wrote: Tue 31 Oct, 2017 12:06Посмотрел, у меня всё-таки всё сделано правильно. Фильтруются новые области потому, что в БД уже есть сохранённый набор показываемых областей (переменная IgorZ/LuaManager/AreaFilter).
Правильнее с моей точки зрения хранить не список показываемых сущностей, а список отфильтровываемых, таким образом новые сущности по умолчанию будут отображаться.
Переделывать много, а ситуация такая возникает раз в несколько лет. Да и переход на новый вариант доставит некоторые неудобства всем старым пользователям. Не стоит, пожалуй.
John Doe wrote: Tue 31 Oct, 2017 12:24
IgorZ wrote: Tue 31 Oct, 2017 12:06Ну, я имел в виду, что на данный момент есть 4 способа вывести описание(+n,0,-1,-n). Их я и назвал режимами. Для их переключения надо заходить в диалог настройки. Можно сделать клавишу, по которой идёт смена режима (+n -> 0 -> -1 -> -n -> +n).
4 только для описания, а ещё и всё остальное.
Режимы это конечно круто, но не уверен, что надо настолько наворачивать...
Ну, нет, так нет.
John Doe wrote: Tue 31 Oct, 2017 12:24
IgorZ wrote: Tue 31 Oct, 2017 12:06Скажем, если указано priority=50, то это совсем не то же самое, что и отсутствие поля priority. В первом случае пишется "50", во втором более правильно указать "По умолчанию".
В первом "50", а во втором лучше ничего, что и будет означать "по умолчанию", но чище выглядит, и не отвлекает внимание от значимых параметров.
Не знаю, не знаю... По-моему, так, как сейчас, лучше. Впрочем, Вы можете отредактировать .lng файлы, заменив раздражающий текст на пустую строку. По идее, никаких проблем не воспоследует.
John Doe wrote: Tue 31 Oct, 2017 12:24
IgorZ wrote: Tue 31 Oct, 2017 12:06Технически файл модуля переименовывается, и загруженный модуль удаляется из package.loaded.
А какой в этом практический смысл?
Уже обсуждалось в своё время. Мне понадобилось оперативно переключаться между несколькими версиями одного модуля: рабочей и тестовыми.
John Doe wrote: Tue 31 Oct, 2017 12:24 P.S.
Поскольку LuaManager сейчас представляет собой модуль, то его удобно разделить по нескольким файлам, которые между собой смогут взаимодействовать с помощью require.
(Во всяком случае мне было бы неудобно работать с файлом, в котором почти 200 кБ)
Пока что некоторые неудобства представляются мне меньшей проблемой, чем перелопачивание всего текста с разделением на автономные части.
John Doe wrote: Wed 01 Nov, 2017 18:14 IgorZ, пожелание: отключаемый столбец с именем файла (без пути)
Не в этой версии. И так затянул из-за запарки на работе. На будущее запишу себе.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 4.0.3 - При вызове модуля можно указывать поле 'SFilter="<Имя скрипта>"' для фильтрации по всем файлам, входящим в этот пакет скриптов. При просмотре макроса многострочные описания выводятся в несколько строк. Изменения и дополнения в справке. Разные правки.

Предупреждение! Начиная с предыдущей версии, поддерживаются новые области: Grabber и Desktop. Если у Вас была установлена более ранняя версия LuaManager, по умолчанию эти области будут отключены. Включите их вручную, если это необходимо.
Last edited by IgorZ on Wed 08 Nov, 2017 07:17, edited 1 time in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

Вышеописанная ошибка устранена. Спасибо!

При просмотре макроса многострочные описания выводятся в несколько строк.
Большое спасибо! Очень удобно.

При наличии других макросов, назначенных на AltShiftF11 (как у меня), выводится меню выбора, которое при повторных нажатиях шортката зацикливается. Поэтому, вероятно, целесообразно дополнить макрос вызова чем-то вроде

Code: Select all

condition=function() return Menu.Id~="165AA6E3-C89B-4F82-A0C5-C309243FD21B" end; -- меню выбора макросов исключаем чтобы не зацикливалось
.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

sToLp wrote: Wed 08 Nov, 2017 12:18Поэтому, вероятно, целесообразно дополнить макрос вызова чем-то вроде
В результате LuaManager перестанет запускаться из этого меню.
С чего бы?

Рекомендую поступить наоборот.
Например измените приоритет конфликтующего макроса.
Или того макроса, который у вас реализует шоркаты в самом меню конфликта.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

John Doe wrote: Wed 08 Nov, 2017 12:49Например измените приоритет конфликтующего макроса.
Для меня они не конфликтующие, а преднамеренно назначенные на данный шорткат. Для удобства их визуального выбора. Поэтому и приоритеты у них должны оставаться равными.
Или того макроса, который у вас реализует шоркаты в самом меню конфликта.
Не существенно какой шорткат может быть произвольно задан для срабатывания из меню выбора макросов. Само то меню выбора всё равно будет вызываться изначальным клавишесочетанием.

Поэтому на текущий момент мне представляется более удобным оставить таки в основном запускающем макросе ограничение на запуск макробраузера из меню выбора. И дополнительно сделать отдельный макрос для запуска LuaManager`а только из этого меню, но по несколько другому шорткату.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

Что-то мы друг друга не понимаем.
sToLp wrote: Wed 08 Nov, 2017 12:18При наличии других макросов, назначенных на AltShiftF11 (как у меня), выводится меню выбора, которое при повторных нажатиях шортката зацикливается.
Что вы имеете ввиду под "зацикливается?

Если макрос назначен срабатывать (во всех) меню, то неудивительно, что он срабатывает.
Что вы ожидаете второй раз нажимая тот же шорткат?

Второй (конфликтующий) макрос на ту же клавишу ведёт себя иначе? Почему?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

John Doe wrote: Wed 08 Nov, 2017 16:38Что вы имеете ввиду под "зацикливается?
Вновь и вновь, и вновь ... вызывает всё то же меню выбора.
Если макрос назначен срабатывать (во всех) меню, то неудивительно, что он срабатывает.
Что вы ожидаете второй раз нажимая тот же шорткат?
Разумеется, это вполне ожидаемо. Но в данном конкретном случае не удобно. В данном конкретном случае хочется то чтобы макрос и в меню появлялся, и не возобновлял вызов этого же меню из него же.
Второй (конфликтующий) макрос на ту же клавишу ведёт себя иначе? Почему?
Он же вызван из другой макрообласти и не предназначен для вызова вновь из этой. В отличие от сабжевого.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

sToLp wrote: Wed 08 Nov, 2017 16:57Вновь и вновь, и вновь ... вызывает всё то же меню выбора.
Ну сначала понятно: это выбор между "Менеджером ..." и вашим "другим" макросом.
А если повторно нажать, то что в списке?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

John Doe wrote: Wed 08 Nov, 2017 17:08
sToLp wrote: Wed 08 Nov, 2017 16:57Вновь и вновь, и вновь ... вызывает всё то же меню выбора.
Ну сначала понятно: это выбор между "Менеджером ..." и вашим "другим" макросом.
А если повторно нажать, то что в списке?
Да. Вы правы! Похоже, что я где-то подзапутался. Вернул всё в изначальный вид и убедился, что при повторном нажатии вызывается LuaManager.
Спасибо большое за настойчивое разъяснение!

Дополнено:
Кажется, нашёл и причину своего нелепого заблуждения. В рабочем экземпляре Far`а было две версии макроса. Новая и предыдущая. facepalm2
Last edited by sToLp on Wed 08 Nov, 2017 18:12, edited 1 time in total.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Менеджер Lua-скриптов для Farа

Post by sToLp »

Назначение одного и того же клавишесочетания нескольким макросам может происходить не только случайным образом. Такое преднамеренное действие позволяет активно использовать меню выбора макросов для визуализизации макросов и назначенных на них клавиш. В т.ч. составлять удобные контекстные меню. А для исключения "наслаивания" меню выбора макросов одного над другим в макрообласти Menu, кажется, удалось-таки подобрать подходящий способ:

Code: Select all

condition=function() local cmt=Object.Title; return mf.index(cmt,"Исполнить макрос: Menu")==-1 end;
-- кондишен для предотвращения "наслаивания" меню выбора макросов его повторными вызовами
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 4.0.4 -
  • Опциональное поле имени файла без пути.
    Может включаться быстрой клавишей и через меню конфигурации.
    • Через меню конфигурации можно отключить показ имени файла (длина=0), ограничить длину поля с обрезанием имени (длина<0) и ограничить длину с переносом остатка имени файла на следующие строки (длина>0).
    • С помощью быстрой клавиши (AltF) можно оперативно отключить показ поля имени файла или включить его, при этом имя файла будет выводиться в одну строку (ну, если оно не больше 1000 символов :)). Данные изменения действуют только на период текущего запуска LuaManager.
  • Доработано сохранение позиции в главном меню.
    Теперь, по идее, при почти любых действиях курсор будет оставаться на том же пункте меню (если тот не исчезнет с экрана).
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 5.0.0 -
  • Добавлена поддержка PanelModule.
  • Шаблоны для диалогов редактирования вынесены в отдельный файл "templates". Формат - lua.
  • При чтении параметра из БД и записи в БД производится автозамена переменных окружения FARPROFILE, FARLOCALPROFILE и FARHOME. То есть, при работе в списке будет фигурировать C:\Program files\FarManager\Profile\Macros\modules\?.lua, а в БД будет храниться %FARPROFILE%\Macros\modules\?.lua. Переносимость улучшится.
  • Более корректное определение номеров строк в .moon файлах. Если вкратце - стандартная функция не учитывает строки с комментариями.
  • Доработана индикация фильтрации в главном меню.
  • Пункты меню плагинов фильтруются по областям аналогично макросам. Раньше выводились все, независимо от состояния фильтра областей.
  • В целях единообразия показ/скрытие макросов и пунктов меню плагинов не из текущей области перенесён с CtrlH на AltH.
  • Тотальный рефакторинг. За годы доработок в коде накопились костыли, подпорки, подпорки костылей и костыли для подпорок. Изведены все (вроде бы).
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

IgorZ wrote: Thu 03 May, 2018 06:41 Если вкратце - стандартная функция не учитывает строки с комментариями.
Хотелось бы подробностей
Post Reply

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