Редактор БД плагинов
Редактор БД плагинов
(бывший "Экспорт / импорт данных LuaMacro")
Описание:
Данный скрипт позволяет просматривать данные плагинов, хранящиеся в локальном и глобальном профилях Far-а, редактировать их, экспортировать в файл, а также импортировать из ранее экспортированного файла. По умолчанию предлагаются данные LuaMacro. После выбора другого плагина умолчание меняется до перезагрузки макросов. Формат файла импорта/экспорта текстовый, довольно простой - фактически, .ini-формат с некоторыми дополнительным ограничениями, так что, в принципе, легко редактируемый при надобности. Можно последовательно сохранить несколько разрозненных кусков данных в один файл путём дописывания в конец. Полученный файл можно импортировать в Far.
Скрипт добавляет себя в меню плагинов.
Требуемая версия Far 3.0.4324+.
Описание:
Данный скрипт позволяет просматривать данные плагинов, хранящиеся в локальном и глобальном профилях Far-а, редактировать их, экспортировать в файл, а также импортировать из ранее экспортированного файла. По умолчанию предлагаются данные LuaMacro. После выбора другого плагина умолчание меняется до перезагрузки макросов. Формат файла импорта/экспорта текстовый, довольно простой - фактически, .ini-формат с некоторыми дополнительным ограничениями, так что, в принципе, легко редактируемый при надобности. Можно последовательно сохранить несколько разрозненных кусков данных в один файл путём дописывания в конец. Полученный файл можно импортировать в Far.
Скрипт добавляет себя в меню плагинов.
Требуемая версия Far 3.0.4324+.
- Attachments
-
- DBEdit.2.1.6.7z
- (18.75 KiB) Downloaded 47 times
Last edited by IgorZ on Wed 22 Apr, 2020 05:57, edited 4 times in total.
Экспорт / импорт данных LuaMacro
Скачав и установив, тут же посредством BookmarkManagerData.lmdata перенёс настройки макроса на трёх переносных дисках на одной машине, и на двух стационарных дисках на двух других машинах. Везде Win10x64. В Far`ах опробовал и в x64-ых, и в x86-ых. То есть всего 10 проб. И все без проблем, быстро и хорошо. Завтра посмотрю на Win10x32, Win7x64 и Win7x32.IgorZ wrote:Вроде, работает.
Экспорт / импорт данных LuaMacro
Маленькая занозка: AltShiftF3, в меню "Импорт из файла" ничего не делаю, Esc, появляется красное сообщение "Импорт / экспорт данных LuaMacro": Отстутствует имя файла. В данном случае сообщение не нужно.
Экспорт / импорт данных LuaMacro
Можно.sToLp wrote:Хотелка: при импорте тоже сделать с возможностью выбора дописать или перезаписать.
Действительно. Это я перегрелся малость, добавляя обработку ошибок.sToLp wrote:Маленькая занозка: AltShiftF3, в меню "Импорт из файла" ничего не делаю, Esc, появляется красное сообщение "Импорт / экспорт данных LuaMacro": Отстутствует имя файла. В данном случае сообщение не нужно.
Вопрос всем: надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Экспорт / импорт данных LuaMacro
Версия 1.0.1 - Добавлен выбор действия, если импортируемая переменная существует. Убрано сообщение об ошибке в случае отказа пользователя.
Подумаю ещё. А то тогда уж и добавление, и удаление параметров напрашивается, и возникает вопрос, стоит ли ограничиваться только LuaMacro, или другие плагины тоже сканировать... Пока остановлюсь на этом. А там посмотрим.sToLp wrote:Имхо, запас карман не тянет — универсальность не помешает.IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Экспорт / импорт данных LuaMacro
Спасибо за совершенствование!
Количество проб существенно увеличилось. На всех опробованных (в Win10x64, 10x32, 7x64 и 7x32; Far64 и 86) отличий не замечено, макрос работал хорошо.
Пожелание касательно данной версии следующее.
В меню "Импорт из файла" такая линейка кнопок:
Code: Select all
{ 1 Перезаписать } [ 2 Все ] [ 3 Пропустить ] [ 4 Пропустить все ] [ 5 Отмена ]
Code: Select all
{ 1 Добавить } [ 2 Все ] [ 3 Пропустить ] [ 4 Вместо ] [ 5 Все ]
[ 6 Отмена ]
[ Пропустить все ]
и [ Отмена ]
в этом случае разве не то же самое?Экспорт / импорт данных LuaMacro
Теперь, после того как вдоволь поупражнялся с макросом, мнение моё поменялось. Голода в редактировании переменных окружения среды нет. Поскольку для этого есть и макросы (например Менеджер переменных окружения, EnvEdit — редактор переменных среды), и как минимум один плагин (Environment Manager). И втискивать эту функцию ещё и в данный макрос навряд ли целесообразно.sToLp wrote:Имхо, запас карман не тянет — универсальность не помешает.IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Экспорт / импорт данных LuaMacro
Из практики созрела и вот такая "комплексная" хотелка:
По команде экспорта (F2) в вызываемом диалоге подставляется имя файла, соответствующее строке меню "Импорт/экспорт данных LuaMacro", с которой диалог вызван, например: BookmarkManagerData.lmdata.
Пользователь, конечно, может изменить его. Но зачем? Ведь проще использовать этот же файл и для последующего импорта.
Поэтому хорошо бы и в диалог для импорта подставлять не маску типа ?.lmdata, а точно также имя файла, соответствующее строке, с которой вызван данный диалог. Это заметно ускорит дело.
И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
По команде экспорта (F2) в вызываемом диалоге подставляется имя файла, соответствующее строке меню "Импорт/экспорт данных LuaMacro", с которой диалог вызван, например: BookmarkManagerData.lmdata.
Пользователь, конечно, может изменить его. Но зачем? Ведь проще использовать этот же файл и для последующего импорта.
Поэтому хорошо бы и в диалог для импорта подставлять не маску типа ?.lmdata, а точно также имя файла, соответствующее строке, с которой вызван данный диалог. Это заметно ускорит дело.
И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
Экспорт / импорт данных LuaMacro
Мой вариант соответствует общепринятому списку вариантов (текущий заменить новым; заменить для всех случаев; оставить старый вариант; всегда оставлять старый; немедленно остановить работу), в том числе и в отношении порядка кнопок. Соответственно, он в силу привычности не требует от пользователя размышлений. Ваш вариант лично меня заставил задуматься, что же значит каждая кнопка? И я не уверен, что понял правильно. Так что Ваше предложение неприемлемо с точки зрения эргономики.sToLp wrote:
А хотелось бы, например, такие:Code: Select all
{ 1 Добавить } [ 2 Все ] [ 3 Пропустить ] [ 4 Вместо ] [ 5 Все ] [ 6 Отмена ]
Разумеется, нет. "Пропустить все" допишет новые переменные, пропустив существующие. "Отмена" немедленно прекратит работу. Опять же, это стандартный подход.sToLp wrote:И ведь[ Пропустить все ]
и[ Отмена ]
в этом случае разве не то же самое?
Речь шла не о редактировании переменных окружения, а о редактировании переменных в БД LuaMacro (тех, что в профиле Far-а, в файле 4EBBEFC8-2084-4B7F-94C0-692CE136894D.db).sToLp wrote:
Теперь, после того как вдоволь поупражнялся с макросом, мнение моё поменялось. Голода в редактировании переменных окружения среды нет. Поскольку для этого есть и макросы (например Менеджер переменных окружения, EnvEdit — редактор переменных среды), и как минимум один плагин (Environment Manager). И втискивать эту функцию ещё и в данный макрос навряд ли целесообразно.
Импорт - потенциально небезопасен, в отличие от экспорта. Поэтому автоподстановка имени здесь нежелательна. Для упрощения работы в диалогах выбора имени есть история, общая для импорта и экспорта, можно вставить имя файла в командную строку после префикса, можно воспользоваться плагином DialogTools.sToLp wrote:
Поэтому хорошо бы и в диалог для импорта подставлять не маску типа ?.lmdata, а точно также имя файла, соответствующее строке, с которой вызван данный диалог. Это заметно ускорит дело.
И подставлять его в качестве значения по умолчанию при нажатии F2? Или сохранять вообще без диалога выбора имени файла? Как именно Вы себе это представляете?sToLp wrote:И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
Last edited by IgorZ on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан оверквотинг
Reason: Спрятан оверквотинг
Экспорт / импорт данных LuaMacro
IgorZ
Принято к сведению. Со стандартами, обычаями и привычками не поспоришь. Благодарю за развёрнутый ответ!
И простите за задержку и скудность моего ответа — работные дни.
Принято к сведению. Со стандартами, обычаями и привычками не поспоришь. Благодарю за развёрнутый ответ!
Представляю это себе аналогичнымIgorZ wrote:И подставлять его в качестве значения по умолчанию при нажатии F2? Или сохранять вообще без диалога выбора имени файла? Как именно Вы себе это представляете?sToLp wrote:И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].
ieimp:[<имя файла>]
.И простите за задержку и скудность моего ответа — работные дни.
Экспорт / импорт данных LuaMacro
sToLp wrote:
Представляю это себе аналогичнымieimp:[<имя файла>]
.
ieimp:<имя файла>
автоматом записывает всё содержимое указанного файла в БД. Предлагаете, чтобы ieexp:<имя файла>
автоматом записывал всё содержимое БД в указанный файл?Экспорт / импорт данных LuaMacro
Спасибо, подоплёка Вашего вопроса понятна. Каюсь, когда я писал свою просьбу, то подразумевал запись в файл содержимого, относящегося к области макроса BookmarkManager. Потому что в ассоциациях на маску BookmarkManagerData.lmdata на импорт данных в макрос у меня внесена такая команда:IgorZ wrote:ieimp:<имя файла>
автоматом записывает всё содержимое указанного файла в БД. Предлагаете, чтобыieexp:<имя файла>
автоматом записывал всё содержимое БД в указанный файл?
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<имя файла>
.