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

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

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

Post by IgorZ »

Данный скрипт содержит следующие макросы:
  1. Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.

    Клавиша вызова по умолчанию: AltShiftF11.
  2. Вставка Lua/Moon скрипта (с выбором, какого типа) в редактируемый .lua/.moon файл.
    Клавиша вызова по умолчанию: LCtrlF11.
  3. Вставка Lua/Moon Macro в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  4. Вставка Lua/Moon Event в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  5. Вставка Lua/Moon MenuItem в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  6. Вставка Lua/Moon CommandLine в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  7. Вставка Lua/Moon PanelModule в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  8. Редактирование Lua/Moon скрипта из редактируемого файла.
    Клавиша вызова по умолчанию: CtrlF12.
  9. Вставка строки guid в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlU.
  10. Перезагрузка всех скриптов.
    Клавиша вызова по умолчанию: CtrlF9.
Требуемая версия Far 3.0.5210+.

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

Attachments
LuaManager.5.1.1.7z
(58.36 KiB) Downloaded 19 times
LuaManager.5.0.6.7z
Последняя опубликованная версия, поддерживающая Far 3.0.0.4000 и выше
(59.02 KiB) Downloaded 86 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 283 times
Last edited by IgorZ on Mon 18 May, 2020 06:26, edited 15 times in total.

User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 107 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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

sToLp, у меня нет

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

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

Post by John Doe »

IgorZ, пожелание: отключаемый столбец с именем файла (без пути)

IgorZ
Posts: 688
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 60 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: 688
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 60 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: 107 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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

Менеджер 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: 107 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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

Менеджер 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: 107 times
Been thanked: 12 times

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

Post by sToLp »

John Doe wrote:
Wed 08 Nov, 2017 16:38
Что вы имеете ввиду под "зацикливается?
Вновь и вновь, и вновь ... вызывает всё то же меню выбора.
Если макрос назначен срабатывать (во всех) меню, то неудивительно, что он срабатывает.
Что вы ожидаете второй раз нажимая тот же шорткат?
Разумеется, это вполне ожидаемо. Но в данном конкретном случае не удобно. В данном конкретном случае хочется то чтобы макрос и в меню появлялся, и не возобновлял вызов этого же меню из него же.
Второй (конфликтующий) макрос на ту же клавишу ведёт себя иначе? Почему?
Он же вызван из другой макрообласти и не предназначен для вызова вновь из этой. В отличие от сабжевого.

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

Менеджер 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: 107 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: 107 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: 688
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 60 times

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

Post by IgorZ »

Версия 4.0.4 -
  • Опциональное поле имени файла без пути.
    Может включаться быстрой клавишей и через меню конфигурации.
    • Через меню конфигурации можно отключить показ имени файла (длина=0), ограничить длину поля с обрезанием имени (длина<0) и ограничить длину с переносом остатка имени файла на следующие строки (длина>0).
    • С помощью быстрой клавиши (AltF) можно оперативно отключить показ поля имени файла или включить его, при этом имя файла будет выводиться в одну строку (ну, если оно не больше 1000 символов :)). Данные изменения действуют только на период текущего запуска LuaManager.
  • Доработано сохранение позиции в главном меню.
    Теперь, по идее, при почти любых действиях курсор будет оставаться на том же пункте меню (если тот не исчезнет с экрана).

IgorZ
Posts: 688
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 60 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: 12814
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 38 times
Been thanked: 286 times

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

Post by John Doe »

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

Post Reply

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