ScriptsBrowser — управление скриптами [экспериментально]

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ScriptsBrowser — управление скриптами [экспериментально]

Post by John Doe »

Каждый автор так или иначе снабжает свои скрипты метаинформацией, такой как название, описание, версия, автор, тема обсуждения на форуме, и т. п.
Сейчас эта информация может содержаться где угодно: в комментариях, или в каком-то диалоге, или в справке.
Естественно централизовано посмотреть её не получится.

Но раз каждый скрипт в любом случае содержит какую-то метаинформацию, то почему бы не заполнять её стандартизировано?
В результате мы получим возможность управлять скриптами централизованно, и реализовать разные интересные возможности, такие как изложенные ранее: http://forum.farmanager.com/viewtopic.p ... 66#p121966

Представляю экспериментальную реализацию некоторых идей:
Основные понятия:
  • Скрипт — это lua-файл. Он может содержать макросы или выполнять свои функции иным способом.
  • Скрипт может иметь вспомогательные файлы (cfg/lng/hlf).
  • Несколько скриптов могут формировать "пакет".
ScriptsBrowser.lua — утилита для работы со скриптами, запускается из меню плагинов.

regscript.lua — сам модуль, регистрирующий скрипты.
Все поля на данный момент опциональны, и их список открыт для обсуждения.
Пока предлагаю следующие:


cfgscript.lua — вспомогательный модуль, позволяющий переопределить начальные настройки скриптов не трогая их исходный код.

cfgscript_test.lua — демонстрационный скрипт для иллюстрации того, что регистрация может быть полезна и в произвольных скриптах

InsertInfo.lua — вспомогательный макрос для вставки в скрипт шаблона с метаинформацией.

P.S.
Интерфейс самого модуля может быть интересен для применения в макробраузерах.
Сейчас он позволяет получить таблицу скрипта по индексу, по id, или по полному имени файла.
Attachments
scriptbrowser02.7z
(10.12 KiB) Downloaded 299 times
User avatar
buniak_a_h
Posts: 4236
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 643 times
Contact:

ScriptsBrowser — управление скриптами [экспериментально]

Post by buniak_a_h »

Latest post of the previous page:

John Doe wrote: Mon 11 Jan, 2021 15:42 Сделаю "по имени" (но в другом месте)
Вам виднее. Спасибо. Если (как говорил мой начальник) есть много лишнего времени, то было бы кузяво сделать настройку. Начальная сортировка по автору тоже была бы полезна. С запоминанием позиционирования. А если браузер открывается из редактора, в редакторе открыт скрипт и он есть в списке - позиционироваться сразу на нём :-) Но это - если много лишнего времени.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ScriptsBrowser — управление скриптами [экспериментально]

Post by John Doe »

buniak_a_h wrote: Mon 11 Jan, 2021 03:35 %FARPROFILE%\macros\modules\BAX\BaxUtils.lua,%FARPROFILE%\macros\modules\BAX\TmpPanelUtils.lua
Вот такое не предполагалось вообще пихать в files.
Если в модулях присутствует аналогичный блок с метаинформацией, то они сами подтянуться (если конечно указан правильный parent_id).
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:

ScriptsBrowser — управление скриптами [экспериментально]

Post by buniak_a_h »

John Doe wrote: Mon 11 Jan, 2021 16:17 Если в модулях присутствует аналогичный блок с метаинформацией, то они сами подтянуться (если конечно указан правильный parent_id).
Это Вы сейчас кому писали?
1. Я не знаю, что такое метаинформация.
2. В модулях нет блока для регистрации (если имеется в виду вызов Info).
3. Я не знаю, что такое parent_id
4. Может, и не предполагалось. Но ведь работает! Удобно, как оказалось (в браузере можно в редакторе открыть модуль, это - удобно).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ScriptsBrowser — управление скриптами [экспериментально]

Post by John Doe »

1. Имелся ввиду блок Info.
2. Вот именно
3. В шапке есть. И в самом ScriptsBrowser используется (см. cfgscript.lua)
4. Удобно, потому я и реализовал то, о чём скахано в предыдущем сообщении.
Да, можно и как вы, но нужно ли?
Если зачем-то всё-таки нужно, то стоит предусмотреть способ упростить указание путей.
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:

ScriptsBrowser — управление скриптами [экспериментально]

Post by buniak_a_h »

John Doe wrote: Mon 11 Jan, 2021 16:54 В шапке есть
Там так:
John Doe wrote: Tue 09 Aug, 2016 16:10

Code: Select all

parent_id   = "";               --id родительского скрипта
Осталось дать определение "родительскому скрипту". Если есть модуль, есть крипт, который этот модуль использует, то какие у них родственные связи? Ну не знаю я Вашей терминологии!
По идее, отношение предок-потомок предполагает отношение "один-ко-многим". Один родитель -> много дочерних скриптов. Отношение скрипта с используемым в нём модулем никак не попадает эту классификацию. Может быть несколько скриптов, использующих один и тот же модуль. И не только его - несколько модулей. И кто из них родитель, а кто - дочка? Исторически часто мои модули вычленяются из скриптов, когда нужда в одной и той же функции появляется второй раз. Если так судить, родитель - скрипт? Т.е. в каждом модуле должны быть перечислены все скрипты, его использующие? Нонсенс. Ваш же скрипт le я использую активно (в т.ч. и для отладки).
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

ScriptsBrowser — управление скриптами [экспериментально]

Post by John Doe »

buniak_a_h wrote: Mon 11 Jan, 2021 20:20 Отношение скрипта с используемым в нём модулем никак не попадает эту классификацию.
Вы правы, это действительно не реализовано.
https://t.me/FarManager — Telegram чат
Post Reply

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