Latest post of the previous page:
Поделитесь в каких случаях было бы удобно вперемешку.mf.EnumScripts (предложения по api)
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
LuaMacro — Lua как язык макросов
Поиск всех типов макросов, определённых в одном файле (в том же, в котором определён макрос типа Macro) или в файлах из одного каталога с неким макросом. Т.е. составляется список скриптов всех типов, а уж потом он анализируется на предмет имени файла, префикса, хоткея и т.п.
Такое у меня было. Естественно, задача решается несколькими вызовами редактора. Но если есть возможность получить ВСЕ макросы, а потом по списку поискать, что надо, эта задача решалась бы легче.
Другая (но похожая) история: некая функция вызывается как из макроса (хоткей помню), так и из комстроки. А вот префикс запамятовал; знаю, что CommandLine определена в том же макрофайле, что и Macro, но в каком - тоже забыл.
Я понимаю, с такими задачами есть простой совет: если склероз, то пора завязывать. Но ведь иногда и на благодарности нарываюсь. Значит, кому-то польза.
Такое у меня было. Естественно, задача решается несколькими вызовами редактора. Но если есть возможность получить ВСЕ макросы, а потом по списку поискать, что надо, эта задача решалась бы легче.
Другая (но похожая) история: некая функция вызывается как из макроса (хоткей помню), так и из комстроки. А вот префикс запамятовал; знаю, что CommandLine определена в том же макрофайле, что и Macro, но в каком - тоже забыл.
Я понимаю, с такими задачами есть простой совет: если склероз, то пора завязывать. Но ведь иногда и на благодарности нарываюсь. Значит, кому-то польза.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
Макробраузер в любом случае будет показывать всё в одном списке, поэтому не уверен что понимаю вашу проблему.buniak_a_h wrote: ↑Sun 20 Jun, 2021 20:57 Но если есть возможность получить ВСЕ макросы, а потом по списку поискать, что надо, эта задача решалась бы легче.
Сам же макробраузер для каждого типа скриптов применяет разные функции форматирования, поэтому и для него разница не велика - разом получать или по типам.
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
LuaMacro — Lua как язык макросов
John Doe, я, наверно, не в теме. Что такое макробраузер? Я знаю скрипты Macro Browser и Macro Browser alt. Но задача именно в том, чтобы получить таблицу (молча, без эха на экране). К тому же Macro Browser alt показывает только макросы и ивенты. Ни MenuItem, ни CommandLine, ни панельные модули не показывает (ну, или я не нашёл).
Форматирование меня не интересует; мне надо получить таблицу-аргумент и имя файла, в котором макрос описан. Причём, иметь таблицу, по которой можно искать, фильтровать и т.п. . Я не знаю, как при помощи имеющегося инструментария решить описанную задачу.
Форматирование меня не интересует; мне надо получить таблицу-аргумент и имя файла, в котором макрос описан. Причём, иметь таблицу, по которой можно искать, фильтровать и т.п. . Я не знаю, как при помощи имеющегося инструментария решить описанную задачу.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
Расскажите что именно с таблицей потом будете делать.buniak_a_h wrote: ↑Mon 21 Jun, 2021 06:47 Но задача именно в том, чтобы получить таблицу (молча, без эха на экране)
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
LuaMacro — Lua как язык макросов
Да я, вроде, рассказал. Две задачи, которые мне пришлось решать в ручном режиме, было бы замакросить легко. Если б был такой сервис.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
Интересуют подробности, которых вы не рассказали.
Дело в том что сделать перебор всех типов скриптов очень просто, вопрос лишь в том, действительно ли надо ли чтобы это было в апи, или же вы (одной строкой?) добавите поверх.
Дело в том что сделать перебор всех типов скриптов очень просто, вопрос лишь в том, действительно ли надо ли чтобы это было в апи, или же вы (одной строкой?) добавите поверх.
https://t.me/FarManager — Telegram чат
LuaMacro — Lua как язык макросов
О, пока я нашёл время поразбираться со старым вариантом, тут уже новый. Красиво получилось. Вопрос такой: а почему
data
передаётся без копирования в новую таблицу? В каких случаях её изменение может быть нужно?LuaMacro — Lua как язык макросов
LuaManager показывает всё это и ещё модули вдобавок.buniak_a_h wrote: ↑Mon 21 Jun, 2021 06:47 К тому же Macro Browser alt показывает только макросы и ивенты. Ни MenuItem, ни CommandLine, ни панельные модули не показывает (ну, или я не нашёл).
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
Всё прочее - внутренние структуры, а
data
это пользовательские данные, просто не вижу причин ограничивать доступ к ним.https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
LuaMacro — Lua как язык макросов
Я часто через data передаю данные из condition в action. Просто при проверке условия часто вычисляется нечто, которое потом используется в action
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
@buniak_a_h, это не отвечает на вопрос зачем вам менять дата через GetMacroCopy
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
LuaMacro — Lua как язык макросов
John Doe, не-не, я меняю не через GetMacroCopy. data же передаётся в параметре и в condition, и в action. Там и меняю.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
LuaMacro — Lua как язык макросов
Вот так:buniak_a_h wrote: ↑Sun 20 Jun, 2021 15:48 а что, несколько ScriptType-ов указать нельзя? Или совсем опустить (что означает "все типы")?
Code: Select all
local all = {"CustomSortModes", "Event", "Macro", "MenuItem", "CommandLine", "PanelModule", "ContentColumns",}
for _,v in ipairs(all) do
for m, idx in mf.EnumScripts(v) do
print(idx, dump(m))
end
end
https://t.me/FarManager — Telegram чат
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
mf.EnumScripts (предложения по api)
Доделал листинг MenuItems для штатного макробраузера.
Если кто не дружен с гитхабом но хочет посмотреть - изменённые файлы прилагаю.
<edit> см обновление ниже
Если кто не дружен с гитхабом но хочет посмотреть - изменённые файлы прилагаю.
<edit> см обновление ниже
Last edited by John Doe on Sat 04 Dec, 2021 17:45, edited 2 times in total.
https://t.me/FarManager — Telegram чат
- buniak_a_h
- Posts: 4236
- Joined: Sat 20 Apr, 2013 00:17
- Location: Санкт-Петробад
- Has thanked: 222 times
- Been thanked: 643 times
- Contact:
mf.EnumScripts (предложения по api)
Распаковал в …\Plugins\LuaMacro, перезапустил FAR. При вызове F11 -> MacroBrowser получаю
Я чего-то не доделал?
Code: Select all
╔════════════════════════════════════════════════════════════ Error ═════════════════════════════════════════════════════════════╗
║ C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.dll: ║
║ C:\Program Files\Far Manager\Plugins\LuaMacro\utils.lua:1224: attempt to call field 'GetCustomSortModes' (a nil value) ║
║ stack traceback: ║
║ C:\Program Files\Far Manager\Plugins\LuaMacro\utils.lua:1224: in function 'EnumScripts' ║
║ C:\Program Files\Far Manager\Plugins\LuaMacro\mbrowser.lua:71: in function 'GetItems' ║
║ C:\Program Files\Far Manager\Plugins\LuaMacro\mbrowser.lua:296: in function 'macrobrowser' ║
║ C:\Program Files\Far Manager\Plugins\LuaMacro\LuaMacro.lua:485: in function <C:\Program Files\Far Manager\Plugins\LuaMacro\ ║
║ LuaMacro.lua:429> ║
╟────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────╢
║ { OK } ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝