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

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

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

Post by IgorZ » Thu 03 Mar, 2016 10:28

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


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



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

Attachments
DBEdit.2.1.2.7z
(17.68 KiB) Downloaded 74 times

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Thu 03 Mar, 2016 10:30

Вроде, работает.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Thu 03 Mar, 2016 15:26

IgorZ wrote:Вроде, работает.
Скачав и установив, тут же посредством BookmarkManagerData.lmdata перенёс настройки макроса на трёх переносных дисках на одной машине, и на двух стационарных дисках на двух других машинах. Везде Win10x64. В Far`ах опробовал и в x64-ых, и в x86-ых. То есть всего 10 проб. И все без проблем, быстро и хорошо. Завтра посмотрю на Win10x32, Win7x64 и Win7x32.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Thu 03 Mar, 2016 17:48

Хотелка: при импорте тоже сделать с возможностью выбора дописать или перезаписать.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Thu 03 Mar, 2016 19:54

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

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Fri 04 Mar, 2016 05:52

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

Вопрос всем: надо ли добавить возможность редактирования переменных? Или здесь это излишне?

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Fri 04 Mar, 2016 06:07

IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Fri 04 Mar, 2016 09:14

Версия 1.0.1 - Добавлен выбор действия, если импортируемая переменная существует. Убрано сообщение об ошибке в случае отказа пользователя.
sToLp wrote:
IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.
Подумаю ещё. А то тогда уж и добавление, и удаление параметров напрашивается, и возникает вопрос, стоит ли ограничиваться только LuaMacro, или другие плагины тоже сканировать... Пока остановлюсь на этом. А там посмотрим.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Fri 04 Mar, 2016 16:13

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: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Fri 04 Mar, 2016 18:58

sToLp wrote:
IgorZ wrote:надо ли добавить возможность редактирования переменных? Или здесь это излишне?
Имхо, запас карман не тянет — универсальность не помешает.
Теперь, после того как вдоволь поупражнялся с макросом, мнение моё поменялось. Голода в редактировании переменных окружения среды нет. Поскольку для этого есть и макросы (например Менеджер переменных окружения, EnvEdit — редактор переменных среды), и как минимум один плагин (Environment Manager). И втискивать эту функцию ещё и в данный макрос навряд ли целесообразно.

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Fri 04 Mar, 2016 21:18

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

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

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

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

И далее хорошо бы расширить функциональность префикса ieexp: до ieexp:[<имя файла>].

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Wed 09 Mar, 2016 10:27

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: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Thu 10 Mar, 2016 05:26

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

И простите за задержку и скудность моего ответа — работные дни.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

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

Post by IgorZ » Fri 11 Mar, 2016 04:42

sToLp wrote:
Представляю это себе аналогичным ieimp:[<имя файла>].
ieimp:<имя файла> автоматом записывает всё содержимое указанного файла в БД. Предлагаете, чтобы ieexp:<имя файла> автоматом записывал всё содержимое БД в указанный файл?

User avatar
sToLp
Posts: 712
Joined: Thu 23 Jul, 2009 10:16
Has thanked: 31 times
Been thanked: 5 times

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

Post by sToLp » Fri 11 Mar, 2016 13:24

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<имя файла>.

IgorZ
Posts: 459
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 6 times
Been thanked: 9 times

Редактор БД плагинов (бывший "Экспорт / импорт данных LuaMacro")

Post by IgorZ » Tue 15 Mar, 2016 07:56

Капитальная переработка (А я предупреждал: начнёшь делать редактирование - такое за собой потянет...). Даже название поменялось. Так что удаляйте старые файлы вручную. Или не удаляйте, чтобы использовать обе версии параллельно (хотя тогда будет, наверное, конфликтовать в меню плагинов, но точно не скажу - не проверял).

Версия 2.0.0 - Скрипт поменял название, префиксы командной строки тоже изменились (спорить, что должно быть раньше - яйцо или курицаимпорт или экспорт - больше нет повода ;)). Добавлена возможность создавать, редактировать и удалять переменные в базе. В том числе, возможно копирование переменной (и даже ключа - но пока без его содержимого) в другое место, даже между локальным и глобальным профилями. Добавлена возможность выбора плагина. При экспорте из командной строки можно указать шаблон экспортируемого ключа или переменной, и всё, подходящее под шаблон, будет экспортировано. Скажем, для LuaMacro можно указать dbexp:<LuaMacro>BookmarkManager, и в файл будут скинуты подключи BookmarkManagerConfig и BookmarkManagerData, как из глобального, так и из локального профилей. Или же, для AdvCmpEx можно указать (предположим, что БД плагина уже была выбрана раньше) dbexp:cmp, и будут экспортированы переменные CmpCase, CmpContents, CmpSize и CmpTime. Рефакторинг, мелкие правки.

Вроде, выловил все баги. Но в связи с большим объёмом переработки лучше быть осторожным - что-то мог и пропустить.

Post Reply

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