Редактор БД плагинов

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

Редактор БД плагинов

Post by IgorZ »

(бывший "Экспорт / импорт данных LuaMacro")
Описание:
Данный скрипт позволяет просматривать данные плагинов, хранящиеся в локальном и глобальном профилях Far-а, редактировать их, экспортировать в файл, а также импортировать из ранее экспортированного файла. По умолчанию предлагаются данные LuaMacro. После выбора другого плагина умолчание меняется до перезагрузки макросов. Формат файла импорта/экспорта текстовый, довольно простой - фактически, .ini-формат с некоторыми дополнительным ограничениями, так что, в принципе, легко редактируемый при надобности. Можно последовательно сохранить несколько разрозненных кусков данных в один файл путём дописывания в конец. Полученный файл можно импортировать в Far.


Скрипт добавляет себя в меню плагинов.



Требуемая версия Far 3.0.4324+.

Attachments
DBEdit.2.1.4.7z
(18.19 KiB) Downloaded 30 times
Last edited by IgorZ on Tue 10 Dec, 2019 11:54, edited 2 times in total.

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

Редактор БД плагинов

Post by John Doe »

Latest post of the previous page:

IgorZ wrote: работает в 20 раз медленнее
Предлагаю по умолчанию открывать "старую" функцию, а уже по хоткею (типа Ctrl-R) перебирать все базы, и отображать дополнительную информацию LG- (наверно лучше интервал увеличить, и "-" можно опустить, имхо).

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

John Doe wrote:
IgorZ wrote: работает в 20 раз медленнее
Предлагаю по умолчанию открывать "старую" функцию, а уже по хоткею (типа Ctrl-R) перебирать все базы, и отображать дополнительную информацию LG- (наверно лучше интервал увеличить, и "-" можно опустить, имхо).
Следующий тестовый вариант. По CtrlA/S/F/G/L включается режим показа всей информации/только имён/плагинов с непустой БД/плагинов с непустой глобальной/локальной БД. Справки пока нет. Нужна/нет - пока думаю.
Attachments
DBEdit.lua.test.7z
(9.47 KiB) Downloaded 75 times

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

Поскольку замечаний больше не поступает, то...
Версия 2.0.3 - Расширенное меню выбора плагина.

cyberspace
Posts: 40
Joined: Wed 22 Apr, 2009 02:38
Has thanked: 3 times

Редактор БД плагинов

Post by cyberspace »

Детский вопрос: а как его установить-то?
Распаковал, скопировал в /addons/macros, перезапустил far.
Видимо этого недостаточно, т.к. на хоткей a-s-f2 / a-s-f3 реакции нет.
--Have a nice day
\\Csp

2useven10
Posts: 4009
Joined: Mon 07 Sep, 2009 10:40
Has thanked: 5 times
Been thanked: 180 times

Редактор БД плагинов

Post by 2useven10 »

cyberspace wrote: скопировал в /addons/macros, перезапустил far.
как все макросы (скрипты) - %FARPROFILE%\Macros\scripts\ ?

cyberspace
Posts: 40
Joined: Wed 22 Apr, 2009 02:38
Has thanked: 3 times

Редактор БД плагинов

Post by cyberspace »

2useven10
Спасибо.
Не покажете ли пальцем в документацию, где всё вот это написано?
В каталоге /documentation мануала большого нет, только faq. А встроенная справка удобна только для контекста.
--Have a nice day
\\Csp

Shmuel
Posts: 6031
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 27 times
Been thanked: 294 times

Редактор БД плагинов

Post by Shmuel »

Encyclopedia\macroapi_manual.ru.chm.

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

Версия 2.1.0 - Скрипт можно использовать как модуль. Исправлена область действия в MenuItem. Разделение префиксов. Переделана справка. Добавлено nfo. Мелкие правки.Расширенное меню выбора плагина.

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

Редактор БД плагинов

Post by John Doe »

IgorZ wrote: Скрипт можно использовать как модуль.
А для чего такое хитрое коварство: заглушка для модуля?

Раз в дистрибутиве две папки, то наверняка 99% пользователей будут честно копировать обе.
Не сделать ли теперь настоящий модуль?

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

John Doe wrote:
IgorZ wrote: Скрипт можно использовать как модуль.
А для чего такое хитрое коварство: заглушка для модуля?
Если, к примеру, в _macroinit.lua вызывается (условно) regscript, а он, в свою очередь, вызывает DBEdit, то без заглушки возникнет ситуация, когда DBEdit не найден - скрипт ещё не успел зарегистрировать себя как модуль. А с заглушкой всё просто - подхватится она, а затем скрипт при загрузке запишет себя, а её уберёт, и при следующем вызове запустится вместо заглушки. Эта ситуация, кстати, впервые всплыла с LuaManager, и, если память не изменяет, с Вашей подачи.
John Doe wrote:Раз в дистрибутиве две папки, то наверняка 99% пользователей будут честно копировать обе.
Не сделать ли теперь настоящий модуль?
Не раз рассматривал такой вариант. Большая проблема в том, что языковые и справочные файлы будут нужны и модулю, и скрипту-затычке, вызывающему модуль. Возникает проблема с их местоположением и именованием (некоторые пользователи переименовывают файлы и раскладывают их в определённые файлы в соответствии со своими соображениями). Вариант с заглушкой наименее затратен для меня и прозрачен для пользователя.

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

Редактор БД плагинов

Post by John Doe »

IgorZ wrote: Большая проблема в том, что языковые и справочные файлы будут нужны и модулю, и скрипту-затычке, вызывающему модуль.
С чего это?
Достаточно только модулю.
IgorZ wrote: Возникает проблема с их местоположением и именованием
Есть дистрибутив, и никто ничего не будет внутри его переименовывать и перемещать.
IgorZ wrote: некоторые пользователи переименовывают файлы
Если скрипт "отдельнолежащий" то да.
А в вашем случае будут переименовывать и перемещать саму папку.

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

John Doe wrote:
IgorZ wrote: Большая проблема в том, что языковые и справочные файлы будут нужны и модулю, и скрипту-затычке, вызывающему модуль.
С чего это?
Достаточно только модулю.
Предварительную обработку тех же префиксов надо производить, а значит, сообщения об ошибках (сейчас отсутствующие, но потенциально возникающие) возможны; в макросах и menuitem-е тоже присутствует локализованный текст.
John Doe wrote:
IgorZ wrote: Возникает проблема с их местоположением и именованием
Есть дистрибутив, и никто ничего не будет внутри его переименовывать и перемещать.
Внутри нет, а вот весь дистрибутив (5 файлов на данный момент, если не считать заглушку) в случае модуля намертво привязан к папке modules, а в нынешней ситуации вполне переносим в любую удобную папку.
Да, кстати. Если положить DBEdit*.* в modules, то должен работать, как обычный модуль. Во всяком случае, LuaManager, устроенный по той же схеме, работал.
John Doe wrote:
IgorZ wrote: некоторые пользователи переименовывают файлы
Если скрипт "отдельнолежащий" то да.
А в вашем случае будут переименовывать и перемещать саму папку.
1. Только в нынешнем исполнении. Модуль из папки modules перемещать нельзя.
2. Есть опыт, когда пользователь переименовывал скрипты в соответствии со своими привычками (Bookmark*.* в Shell_Bookmark*.* и т. д.).

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

Редактор БД плагинов

Post by John Doe »

IgorZ wrote: в макросах и menuitem-е тоже присутствует локализованный текст.
Функция локализации может предоставляться модулем.
IgorZ wrote: а вот весь дистрибутив [...] в нынешней ситуации вполне переносим в любую удобную папку.
IgorZ wrote: 1. Только в нынешнем исполнении. Модуль из папки modules перемещать нельзя.
2. Есть опыт, когда пользователь переименовывал скрипты в соответствии со своими привычками (Bookmark*.* в Shell_Bookmark*.* и т. д.).
Дистрибутив состоит из двух частей: содержимое scripts можно переименовывать/переносить, а содержимое modules нет.
И как ни крути — этого не изменить, независимо от того, будет ли "заглушка", или честный модуль.

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

Редактор БД плагинов

Post by John Doe »

Мелкие пожелания по скрипту:
  1. В меню плагинов пункт отображается так: "Plugins DB editor (LuaMacro)"
    Имхо содержимое скобок тут лишнее, ведь при вызове открывается выбор плагина.
  2. Выбор плагина отовсюду вызывается по CtrlS, но ещё интуитивнее если нажатие CtrlPgUp выполняло бы ту же функцию (из меню выбора локального/глобального профиля).
  3. Хотелось бы иметь возможность для просмотра таблиц использовать альтернативные средства.
    (Встроенная функция кажется мне не очень наглядной)
  4. По справке: есть конечно ShiftF1, но я бы добавил в каждый раздел гиперссылку на содержание.
    В штатных плагинах так.
  5. В модуле не нашёл возможности вызывать выбор плагина.
    В справке не описано, но если указать неправильное имя, то выбор выводится, однако при нажатии Esc происходит не то, что ожидается

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

John Doe wrote:Мелкие пожелания по скрипту:
  1. В меню плагинов пункт отображается так: "Plugins DB editor (LuaMacro)"
    Имхо содержимое скобок тут лишнее, ведь при вызове открывается выбор плагина.
  2. Выбор плагина отовсюду вызывается по CtrlS, но ещё интуитивнее если нажатие CtrlPgUp выполняло бы ту же функцию (из меню выбора локального/глобального профиля).
  3. Хотелось бы иметь возможность для просмотра таблиц использовать альтернативные средства.
    (Встроенная функция кажется мне не очень наглядной)
  4. По справке: есть конечно ShiftF1, но я бы добавил в каждый раздел гиперссылку на содержание.
    В штатных плагинах так.
  5. В модуле не нашёл возможности вызывать выбор плагина.
    В справке не описано, но если указать неправильное имя, то выбор выводится, однако при нажатии Esc происходит не то, что ожидается
  1. Осталось от старого варианта, когда открывалась БД плагина по умолчанию. Стоит поправить, действительно.
  2. Посмотрю. Сделаю, если ничему не помешает.
  3. Гляну. Может, сделаю.
  4. Спасибо, идея архиправильная.
  5. Погляжу. По задумке, всё должно работать, как и при обычном запуске. Исправлю, если не так.

IgorZ
Posts: 667
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 13 times
Been thanked: 52 times

Редактор БД плагинов

Post by IgorZ »

Потерялось почему-то. Попробую снова запостить.
John Doe wrote:
IgorZ wrote: в макросах и menuitem-е тоже присутствует локализованный текст.
Функция локализации может предоставляться модулем.
В принципе, можно и так, но для этого надо всё переделывать. А для этого нужны объективные основания, перевешивающие аргументы за сохранение текущего состояния. На данный момент в качестве такого основания мне в голову приходит только "Шеф, всё пропало! Эта схема больше не работает/форматирует жёсткий диск при запуске/и т. п.". В конце концов, я больше не использую хаки вроде самостоятельного добавления своего модуля непосредственно в _G.package.loaded, всё делается по правилам.
John Doe wrote:
IgorZ wrote: а вот весь дистрибутив [...] в нынешней ситуации вполне переносим в любую удобную папку.
IgorZ wrote: 1. Только в нынешнем исполнении. Модуль из папки modules перемещать нельзя.
2. Есть опыт, когда пользователь переименовывал скрипты в соответствии со своими привычками (Bookmark*.* в Shell_Bookmark*.* и т. д.).
Дистрибутив состоит из двух частей: содержимое scripts можно переименовывать/переносить, а содержимое modules нет.
И как ни крути — этого не изменить, независимо от того, будет ли "заглушка", или честный модуль.
Есть разница: несколько (пять, в данном случае) фиксированных файлов в modules, или одна заглушка, большинству (по моим прикидкам) пользователей вообще совершенно не нужная и, соответственно, безболезненно ими при желании удаляемая. Я бы вообще не стал её вводить, если бы придумал конвенциональный способ обходиться без неё (или без редактирования _macroinit.lua в качестве альтернативы).

P. S. Есть, на мой взгляд, фундаментальный принцип: если пакет создан, чтобы предоставлять универсальный программный интерфейс любым программам, его надо делать модулем (библиотекой, в более общем смысле). semver - типичный тому пример. Если он предоставляет интерфейс пользователю - это скрипт/программа. С этой точки зрения и LuaManager, и DBEdit - скрипты с минимальным элементом модульности. Ведь, скажем, Word или Excel, хоть и имеют программный интерфейс, не являются библиотеками.

Post Reply

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