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

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

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

Post by IgorZ »

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



В стандартной поставке идёт файл, добавляющий следующие возможности:
  • Пункт в меню плагинов.
Требуемая версия Far 3.0.4324+.

Attachments
DBEdit.3.1.0.7z
(19.02 KiB) Downloaded 73 times
DBEdit.2.1.8.7z
Последняя публичная версия не в виде модуля
(18.87 KiB) Downloaded 199 times
Last edited by IgorZ on Tue 23 May, 2023 06:39, edited 8 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Экспорт / импорт данных LuaMacro

Post by IgorZ »

Вроде, работает.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

IgorZ wrote:Вроде, работает.
Скачав и установив, тут же посредством BookmarkManagerData.lmdata перенёс настройки макроса на трёх переносных дисках на одной машине, и на двух стационарных дисках на двух других машинах. Везде Win10x64. В Far`ах опробовал и в x64-ых, и в x86-ых. То есть всего 10 проб. И все без проблем, быстро и хорошо. Завтра посмотрю на Win10x32, Win7x64 и Win7x32.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

Хотелка: при импорте тоже сделать с возможностью выбора дописать или перезаписать.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

Маленькая занозка: AltShiftF3, в меню "Импорт из файла" ничего не делаю, Esc, появляется красное сообщение "Импорт / экспорт данных LuaMacro": Отстутствует имя файла. В данном случае сообщение не нужно.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Экспорт / импорт данных LuaMacro

Post by IgorZ »

sToLp wrote:Хотелка: при импорте тоже сделать с возможностью выбора дописать или перезаписать.
Можно.
sToLp wrote:Маленькая занозка: AltShiftF3, в меню "Импорт из файла" ничего не делаю, Esc, появляется красное сообщение "Импорт / экспорт данных LuaMacro": Отстутствует имя файла. В данном случае сообщение не нужно.
Действительно. Это я перегрелся малость, добавляя обработку ошибок.

Вопрос всем: надо ли добавить возможность редактирования переменных? Или здесь это излишне?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Экспорт / импорт данных LuaMacro

Post by IgorZ »

Версия 1.0.1 - Добавлен выбор действия, если импортируемая переменная существует. Убрано сообщение об ошибке в случае отказа пользователя.
sToLp wrote:
IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.
Подумаю ещё. А то тогда уж и добавление, и удаление параметров напрашивается, и возникает вопрос, стоит ли ограничиваться только LuaMacro, или другие плагины тоже сканировать... Пока остановлюсь на этом. А там посмотрим.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

IgorZ wrote: Версия 1.0.1
Спасибо за совершенствование!
Количество проб существенно увеличилось. На всех опробованных (в Win10x64, 10x32, 7x64 и 7x32; Far64 и 86) отличий не замечено, макрос работал хорошо.
Пожелание касательно данной версии следующее.
В меню "Импорт из файла" такая линейка кнопок:

Code: Select all

{ 1 Перезаписать } [ 2 Все ] [ 3 Пропустить ] [ 4 Пропустить все ] [ 5 Отмена ]
А хотелось бы, например, такие:

Code: Select all

{ 1 Добавить } [ 2 Все ] [ 3 Пропустить ] [ 4 Вместо ] [ 5 Все ] 
                           [ 6 Отмена ]
И ведь [ Пропустить все ] и [ Отмена ] в этом случае разве не то же самое?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

sToLp wrote:
IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.
Теперь, после того как вдоволь поупражнялся с макросом, мнение моё поменялось. Голода в редактировании переменных окружения среды нет. Поскольку для этого есть и макросы (например Менеджер переменных окружения, EnvEdit — редактор переменных среды), и как минимум один плагин (Environment Manager). И втискивать эту функцию ещё и в данный макрос навряд ли целесообразно.
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

Из практики созрела и вот такая "комплексная" хотелка:

По команде экспорта (F2) в вызываемом диалоге подставляется имя файла, соответствующее строке меню "Импорт/экспорт данных LuaMacro", с которой диалог вызван, например: BookmarkManagerData.lmdata.

Пользователь, конечно, может изменить его. Но зачем? Ведь проще использовать этот же файл и для последующего импорта.

Поэтому хорошо бы и в диалог для импорта подставлять не маску типа ?.lmdata, а точно также имя файла, соответствующее строке, с которой вызван данный диалог. Это заметно ускорит дело.

И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Экспорт / импорт данных LuaMacro

Post by IgorZ »

sToLp wrote:
А хотелось бы, например, такие:

Code: Select all

{ 1 Добавить } [ 2 Все ] [ 3 Пропустить ] [ 4 Вместо ] [ 5 Все ] [ 6 Отмена ]
Мой вариант соответствует общепринятому списку вариантов (текущий заменить новым; заменить для всех случаев; оставить старый вариант; всегда оставлять старый; немедленно остановить работу), в том числе и в отношении порядка кнопок. Соответственно, он в силу привычности не требует от пользователя размышлений. Ваш вариант лично меня заставил задуматься, что же значит каждая кнопка? И я не уверен, что понял правильно. Так что Ваше предложение неприемлемо с точки зрения эргономики.
sToLp wrote:И ведь [ Пропустить все ] и [ Отмена ] в этом случае разве не то же самое?
Разумеется, нет. "Пропустить все" допишет новые переменные, пропустив существующие. "Отмена" немедленно прекратит работу. Опять же, это стандартный подход.
sToLp wrote:
Теперь, после того как вдоволь поупражнялся с макросом, мнение моё поменялось. Голода в редактировании переменных окружения среды нет. Поскольку для этого есть и макросы (например Менеджер переменных окружения, EnvEdit — редактор переменных среды), и как минимум один плагин (Environment Manager). И втискивать эту функцию ещё и в данный макрос навряд ли целесообразно.
Речь шла не о редактировании переменных окружения, а о редактировании переменных в БД LuaMacro (тех, что в профиле Far-а, в файле 4EBBEFC8-2084-4B7F-94C0-692CE136894D.db).
sToLp wrote:
Поэтому хорошо бы и в диалог для импорта подставлять не маску типа ?.lmdata, а точно также имя файла, соответствующее строке, с которой вызван данный диалог. Это заметно ускорит дело.
Импорт - потенциально небезопасен, в отличие от экспорта. Поэтому автоподстановка имени здесь нежелательна. Для упрощения работы в диалогах выбора имени есть история, общая для импорта и экспорта, можно вставить имя файла в командную строку после префикса, можно воспользоваться плагином DialogTools.
sToLp wrote:И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
И подставлять его в качестве значения по умолчанию при нажатии F2? Или сохранять вообще без диалога выбора имени файла? Как именно Вы себе это представляете?
Last edited by IgorZ on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан оверквотинг
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

IgorZ
Принято к сведению. Со стандартами, обычаями и привычками не поспоришь. Благодарю за развёрнутый ответ!
IgorZ wrote:
sToLp wrote:И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
И подставлять его в качестве значения по умолчанию при нажатии F2? Или сохранять вообще без диалога выбора имени файла? Как именно Вы себе это представляете?
Представляю это себе аналогичным ieimp:[<имя файла>].

И простите за задержку и скудность моего ответа — работные дни.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Экспорт / импорт данных LuaMacro

Post by IgorZ »

sToLp wrote:
Представляю это себе аналогичным ieimp:[<имя файла>].
ieimp:<имя файла> автоматом записывает всё содержимое указанного файла в БД. Предлагаете, чтобы ieexp:<имя файла> автоматом записывал всё содержимое БД в указанный файл?
User avatar
sToLp
Posts: 938
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 114 times
Been thanked: 12 times

Экспорт / импорт данных LuaMacro

Post by sToLp »

IgorZ wrote: ieimp:<имя файла> автоматом записывает всё содержимое указанного файла в БД. Предлагаете, чтобы ieexp:<имя файла> автоматом записывал всё содержимое БД в указанный файл?
Спасибо, подоплёка Вашего вопроса понятна. Каюсь, когда я писал свою просьбу, то подразумевал запись в файл содержимого, относящегося к области макроса BookmarkManager. Потому что в ассоциациях на маску BookmarkManagerData.lmdata на импорт данных в макрос у меня внесена такая команда:
ieimp:BookmarkManagerData.lmdata
а на экспорт из базы в файл следующая:
lua:Plugin.Menu("4EBBEFC8-2084-4B7F-94C0-692CE136894D","31495183-8AD8-4CFE-B228-9C24CDF2C630") Keys("Enter 2*Down F2 2*CtrlLeft ShiftHome Del % F a r P r o f i l e % \\ M a c r o s \\ s c r i p t s \\ s h e _ l u a \\ Enter Right Enter F10")
и опасаюсь, что со временем последняя команда даже самим её написантом может быть воспринята как ребус.

Поэтому по зрелому размышлению полагаю, что префикс ieexp: наверное целесообразно оставить как есть, а для удобства экспорта в файл BookmarkManagerData.lmdata сделайте, пожалуйста, что-то типа: bmieexp:<имя файла> или м.б.: ieexp:bm<имя файла>.
Post Reply

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