mf.EnumScripts (предложения по api)

Здесь обсуждается всё, что касается макросов.
User avatar
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)

Post by buniak_a_h »

Latest post of the previous page:

Распаковал в …\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 }                                                             ║
╚════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════════╝
Я чего-то не доделал?
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

mf.EnumScripts (предложения по api)

Post by John Doe »

buniak_a_h wrote: Sat 26 Jun, 2021 14:34 Я чего-то не доделал?
Это я файлов не доложил
https://t.me/FarManager — Telegram чат
User avatar
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)

Post by buniak_a_h »

John Doe wrote: Sat 26 Jun, 2021 15:21 Это я файлов не доложил
Спасибо, теперь работает
User avatar
citRiks
Posts: 1733
Joined: Fri 25 Oct, 2019 18:18
Has thanked: 610 times
Been thanked: 102 times

mf.EnumScripts (предложения по api)

Post by citRiks »

не сподобился понять я.
скачал и установил распоследний ФАР числом 5883 (Far30b5883.x86.20210825.msi)
Ожидал увидеть mf.EnumScripts(..), и не увидел оный.
Это так и должно быть, или это только у меня что-то не так пошло?
Не критично ни разу, просто сообщаю.
Last edited by citRiks on Wed 25 Aug, 2021 18:46, edited 1 time in total.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

mf.EnumScripts (предложения по api)

Post by John Doe »

https://github.com/FarGroup/FarManager/pull/420
Не вошёл ещё в мастер
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

mf.EnumScripts (предложения по api)

Post by John Doe »

Макробраузер теперь дополнительно показывает пункты меню плагинов, и префиксы.

Файл распаковать в %FARHOME%\Plugins\luamacro с замещением.

<вложение удалено>
Last edited by John Doe on Tue 07 Mar, 2023 13:52, edited 2 times in total.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

mf.EnumScripts (предложения по api)

Post by John Doe »

Обновил. Теперь отображает все доступные сущности, включая:

Пункты меню плагинов
Префиксы
Панельные модули
Контент-колонки
Пользовательские режимы сортировки

Если есть пожелания, то самое время высказаться, иначе пойдёт в таком виде.
https://t.me/FarManager — Telegram чат
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

mf.EnumScripts (предложения по api)

Post by John Doe »

Вошло в Far начиная с build 5934.
https://t.me/FarManager — Telegram чат
User avatar
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)

Post by buniak_a_h »

John Doe wrote: Tue 14 Dec, 2021 09:13 Вошло в Far начиная с build 5934.
Обновился (при помощи Renewal) до версии 5935, в mf нет EnumScript … ЧЯДНТ? Может, надо архив скачать и распаковать поверх?
User avatar
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)

Post by buniak_a_h »

Сорри, это какой-то глюк renewal-а. Забыл снять защиту с папки, renewal ругнулся, что не может заменить что-то, но после снятия защиты обновилось не всё.
User avatar
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)

Post by buniak_a_h »

John Doe, а Вы пополнили LuaCheck? а то у меня на mf.EnumScript ругается…
User avatar
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)

Post by buniak_a_h »

John Doe wrote: Tue 14 Dec, 2021 09:13 Вошло в Far начиная с build 5934.
Сейчас натолкнулся. Вызываю справку по mf, получаю:
image.png
image.png (8.86 KiB) Viewed 4551 times
Т.е. ссылка недоступна. Нет, поиском или из оглавления есть. Нет в списке полей таблицы mf. Мелкая, легко исправляемая ошибочка. Исправите?
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

mf.EnumScripts (предложения по api)

Post by Shmuel »

John Doe wrote: Tue 14 Dec, 2021 09:13 Вошло в Far начиная с build 5934.
Там есть пара мест, дающих красные окошки, если используется не LuaJIT, а Lua5.1
Я это сегодня исправил в версии для Линукса.
Если сочтёте нужным, можете исправить и для Фар3.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

mf.EnumScripts (предложения по api)

Post by zg »

Shmuel wrote: Sun 12 Mar, 2023 19:59 Если сочтёте нужным, можете исправить и для Фар3.
спасибо, добавил.
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

Вопросы по функции mf.EnumScripts

Post by buniak_a_h »

При использовании функции mf.EnumScripts у меня возникло несколько вопросов.
Для конкретности: функция вызывается в таком контексте:

Code: Select all

local aWhat = {"Macro", "Event", "MenuItem", "CommandLine", "ContentColumns", "PanelModule", "CustomSortModes"}
for _,What in ipairs(aWhat) do
  for a,i in mf.EnumScripts(What) do
    … … … … … … 
  end
end
  1. Что означает второй результат (i)? Как показал опыт, он повторяется…
  2. У некоторых a поле id (a.id) - ГУИД во внешнем представлении (те, что по 'Macro') а у некоторых - во внутреннем (это - те,которые по 'MenuItem'). Так и задумано? Если да - это странно…
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

Вопросы по функции mf.EnumScripts

Post by John Doe »

buniak_a_h wrote: Fri 09 Jun, 2023 22:22 Что означает второй результат (i)? Как показал опыт, он повторяется…
Порядковый номер во внутренних таблицах.
Для Macro и Event таблица одна (и номер соответствует тому, который можно использовать с mf.GetmacroCopy()).
Прочие типы скриптов содержатся в других таблицах, со своими номерами, которые конечно же не уникальны.
buniak_a_h wrote: Fri 09 Jun, 2023 22:22 а у некоторых - во внутреннем (это - те,которые по 'MenuItem'). Так и задумано? Если да - это странно…
Это детали реализации, EnumScripts лишь показывает их нам, но не заставляет использовать.
Автор в своё время решил хранить так, по причине что в случае MenuItem guid это необходимое для фара поле, которое внутри так и используется - в бинарном виде.
Можно было бы хранить и в человекочитаемом виде, но тогда требовалось бы каждый раз при вызове функций фара конвертировать в бинарный вид.

Можно научить EnumScripts конвертировать, но как по мне это бессмысленно.
https://t.me/FarManager — Telegram чат
Post Reply

Return to “Обсуждение макросов”