Менеджер 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 88 times
LuaManager.5.2.0.7z
Версия для Far 3.0.0.5210+
(58.78 KiB) Downloaded 219 times
LuaManager.5.0.6.7z
Последняя опубликованная версия, поддерживающая Far 3.0.0.4000 и выше
(59.02 KiB) Downloaded 351 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 515 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Latest post of the previous page:

Версия 5.1.3 -
  • Исправлена ошибка с русскими описаниями в файлах скриптов в кодировке Windows. Если кто-то сохранил файл в кодировке DOS или ещё какой-то неюникодной - ну, что ж, ошибки не будет... Внятного текста тоже. Ну а если кто-то сохранит файл в utf16 - ошибка проявится ещё при попытке загрузки скрипта. Это не ко мне.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

IgorZ wrote: Fri 25 Jun, 2021 07:40Версия 5.1.3 -
А у меня даже просто при распаковке папки modules и вызове из комстроки lua:=require"LuManager" возникает ошибка (прям щас точной формулировки не помню, что-то вроде не найден модуль LuaManager). После чего ФАР надолго задумывается и в конце концов выдаёт database is busy (тоже не точно).
Просто сейчас модуль вернул на тот, что в версии 5.1.0, и всё описанное работает.
Last edited by buniak_a_h on Fri 25 Jun, 2021 08:47, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

P/S. Ошибку вызывают строки, помеченные как Временный костыль на переходный период (строки 278-281)
Far 5833
Last edited by buniak_a_h on Fri 25 Jun, 2021 08:56, edited 1 time in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 5.1.4 -
  • Исправлена ошибка с загрузкой параметров, если БД пустая. Очень старая ошибка. Перекрывалась логикой чтения параметров из БД, поэтому не была заметна.
  • Заодно сделал сообщение об отсутствии модуля более информативным.
skipik
Posts: 318
Joined: Wed 03 Jun, 2015 15:24
Has thanked: 67 times
Been thanked: 29 times

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

Post by skipik »

IgorZ, LuaManager 5.1.4 падает, если при создании обработчика событий в поле "Группа событий" диалога "Настройки обработчика событий" выбрать любою отличную от дефолтной ExitFar строку выпадающего списка.
Стек:
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

skipik wrote: Sat 14 Aug, 2021 23:04 IgorZ, LuaManager 5.1.4 падает, если при создании обработчика событий в поле "Группа событий" диалога "Настройки обработчика событий" выбрать любою отличную от дефолтной ExitFar строку выпадающего списка.
Сумел повторить на чистом Far с нулевым профилем. Буду смотреть.

P. S. Проблема не моя. Причина, судя по всему в

Code: Select all

drkns 29.07.2021 19:41:27 +0100 - build 5859
...
2. Continue 5845.6 - do not populate FarDialogItem.ListItems in DN_DRAWDLGITEM.
Как следствие, в обработчике событий для комбобокса в Param2 передаётся неверная таблица значений: если до того шестым элементом передавалась таблица ListItems, то теперь 0. Как обойти, представляю, сделаю. Но будет на один вызов функции больше, чего, конечно, хотелось избежать.
Last edited by IgorZ on Mon 16 Aug, 2021 12:01, edited 2 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

skipik wrote: Sat 14 Aug, 2021 23:04 IgorZ, LuaManager 5.1.4 падает, если при создании обработчика событий в поле "Группа событий" диалога "Настройки обработчика событий" выбрать любою отличную от дефолтной ExitFar строку выпадающего списка.
Версия 5.1.5 -
  • Исправлена корректировка значения комбобокса для обхода ошибки возникшей из-за 5859.2. Удалось даже чуть сократить код по сравнению с предыдущим вариантом. Мелочь, а приятно. :)
Last edited by IgorZ on Tue 17 Aug, 2021 09:14, edited 1 time in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

В сязи с началом осени и завершением одного долгоиграющего проекта (и появлением чутка свободного времени) довёл до релиза кое-какие давно задуманные идеи.

Версия 5.2.0 -
  • Добавлена настройка порядка вывода разных типов скриптов. Если раньше все типы шли в том порядке, в каком я добавлял их обработку в LuaManager, то теперь можно выводить их в том порядке, в каком вздумается: к примеру, модули, затем префиксы, после макросы, за ними панельные модули и в конце - обработчики событий. Настройка - через окно конфигурации.
  • Данные макросов и всё к ним относящееся убраны из модуля. Они там были с тех пор, когда LuaManager ещё не был модулем. Теперь всё, относящееся к макросам (GUIDы, настройки клавиш, языковые данные), находится в файле с макросами и рядом (языковые файлы). Также в поставке идёт файл __ConvertLuaManagerKeysFromDBToLMMacros.lua, который находит настройки клавиш в БД LuaMacro, достаёт их отттуда, корректирует LMMacros.lua, затем удаляет из БД ненужные более настройки клавиш и, в конце, удаляет себя. Кому такой сервис не нужен - удалите его и делайте настройки клавиш (если надо) вручную.
  • Рефакторинг. Много всего. Из наиболее интересного - языковые данные модуля теперь тянутся через метатаблицу. Получилось красиво и удобно.
  • Исправление ошибок. А как же без них?
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Свершилось! Я добил то, с чем колупался так долго.
Версия 6.0.0 -
  • Добавлена поддержка ContentColumn и Panel.LoadCustomSortMode. Последние можно, как и всё остальное, добавлять в файл. К сожалению, имя файла не хранится в данных режима сортировки, поэтому поддержка ограничена.
  • Переделано получение скриптов от системы на mf.EnumScripts(), требуется Far build 5934. Из плюсов - стало единообразнее, и конвенциональнее. Из минусов - требуется Far build 5934, как минимум.
  • Доработка параметров вызова модуля. Теперь можно указывать больше параметров. Подробности - в справке.
  • Рефакторинг. Кое-какие места стали попроще (и, возможно, побыстрее). Ошибки возможны, но маловероятны.
  • Исправление ошибок. В том числе, несколько настолько старых, что аж удивительно.
  • Изменения в поставочном файле макросов:
    • Добавка макросов для вставки контент-колонок и пользовательских режимов сортировки.
    • Настройки клавиш перенесены обратно в БД. В прошлой версии я решил перенести настройки клавиш из БД в файл, теперь одумался, прежде всего из-за потенциальных неудобств при обновлении. Для переноса текущих настроек в БД в поставке лежит файл __ConvertLuaManagerKeysFromLMMacrosToDB.lua. Если поместить его в папку с предыдущей версией LMMacros.lua и запустить, то он прочитает из LMMacros.lua настройки клавиш и запишет их в БД, затем удалит себя. Это следует сделать до того, как будет обновлён LMMacros.lua.
    • Добавлен диалог их настроек. Вызывается из диалога настроек LuaManager нажатием F9 или соответствующей кнопки (появляется, если обнаружен макрос настройки клавиш).
    • Рефакторинг.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

IgorZ!
Достаточно ли просто распаковать LuaManager.6.0.0.7z в %FarProfile% ? Я так сделал на пустом портабельном ФАРе, получил:
╔═══════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════╗ ║ E:\Far.Test\Profile\Macros\scripts\LMMacros.lua:83: bad argument #1 to 'OpenSubkey' (invalid flag) ║ ║ stack traceback: ║ ║ [C]: in function 'OpenSubkey' ║ ║ E:\Far.Test\Profile\Macros\scripts\LMMacros.lua:83: in main chunk ║ ║ [C]: in function 'xpcall' ║ ║ E:\Far.Test\Plugins\LuaMacro\utils.lua:782: in function <E:\Far.Test\Plugins\LuaMacro\utils.lua:759> ║ ║ [C]: in function 'RecursiveSearch' ║ ║ E:\Far.Test\Plugins\LuaMacro\utils.lua:851: in function <E:\Far.Test\Plugins\LuaMacro\utils.lua:678> ║ ╟─────────────────────────────────────────────────────────────────────────────────────────────────────────╢
ЧЯДНТ?
Last edited by buniak_a_h on Fri 06 May, 2022 14:36, edited 1 time in total.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

IgorZ, вдогонку.
Я, наверно, понял. В строке 83 надо написать такой же пассаж, как в строке 81. Т.е. вместо
obj:OpenSubkey(0,Author)
везде писать
obj:OpenSubkey(0,Author) or 0
Хотя нет, не помогает… Возникает другая ошибка:
╔═══════════════════════════════════════════════ LuaMacro ════════════════════════════════════════════════╗ ║ E:\Far.Test\Profile\Macros\scripts\LMMacros.lua:85: bad argument #1 to 'Get' (invalid flag) ║ ║ stack traceback: ║ ║ [C]: in function 'Get' ║ ║ E:\Far.Test\Profile\Macros\scripts\LMMacros.lua:85: in main chunk ║ ║ [C]: in function 'xpcall' ║ ║ E:\Far.Test\Plugins\LuaMacro\utils.lua:782: in function <E:\Far.Test\Plugins\LuaMacro\utils.lua:759> ║ ║ [C]: in function 'RecursiveSearch' ║ ║ E:\Far.Test\Plugins\LuaMacro\utils.lua:851: in function <E:\Far.Test\Plugins\LuaMacro\utils.lua:678> ║ ╟─────────────────────────────────────────────────────────────────────────────────────────────────────────╢
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

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

Post by buniak_a_h »

IgorZ,
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

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

Post by citRiks »

IgorZ wrote: Fri 06 May, 2022 08:04К сожалению, имя файла не хранится в данных режима сортировки, поэтому поддержка ограничена.
1.) надеюсь автор/ы ЛуаМакро прочтут это и добавят имя файла куда надо
2.) При наличии функции:
<CustomSortMode>.Compare(...)
.. имя файла можно брать с помощью встроенного в Луа инструмента "самоанализа"/интроспекции:
debug.getinfo(<CustomSortMode>.Compare)
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

buniak_a_h wrote: Fri 06 May, 2022 14:34 IgorZ!
Достаточно ли просто распаковать LuaManager.6.0.0.7z в %FarProfile% ? Я так сделал на пустом портабельном ФАРе, получил:

ЧЯДНТ?
Всё так, каким-то образом в релиз проскочила уже исправленная ошибка времён разработки. В 83й строке вместо OpenSubkey должно стоять CreateSubkey.

P. S. Исправленный файл с макросами для версии 6.0.0 добавлен в заглавный пост.
Last edited by IgorZ on Wed 11 May, 2022 10:22, edited 2 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 6.0.1 -
  • Исправлена ошибка при вызове диалога настроек, если скрипт ещё не вызывался. Ну и, возможно, она же проявлялясь в каких-то других случаях.
Post Reply

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