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

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 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 66 times

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

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

Latest post of the previous page:

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

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

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

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

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

Post by sToLp » Wed 16 Mar, 2016 09:23

Головокружительное по размаху обновление. Огромный труд. Спасибо!
Особая благодарность за префиксы!
У себя , чтобы не циклились при совпадении шорткатов с другими макросами.
А именно: a) добавил в макросы condition для отключения шорткатов сабжа в меню выбора макросов;
b) а для запуска сабжа из самого этого меню навесил его на те же шорткаты, но с добавлением модификатора Ctrl.

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Wed 16 Mar, 2016 10:12

sToLp wrote:Головокружительное по размаху обновление. Огромный труд. Спасибо!
Особая благодарность за префиксы!
У себя , чтобы не циклились при совпадении шорткатов с другими макросами.
Для переназначения клавиш рекомендую модуль Rebind за авторством John Doe. Единственное, надо его править - заменить указанную функцию (по обеим ссылкам надо смотреть не шапку, а первый пост под ней). Для удобства пользования модулем можно использовать LuaManager (мой выбор ;))или Macro Browser alt.

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

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

Post by sToLp » Sat 19 Mar, 2016 09:48

IgorZ wrote: Для переназначения клавиш рекомендую модуль Rebind за авторством John Doe. Единственное, надо его править - заменить указанную функцию (по обеим ссылкам надо смотреть не шапку, а первый пост под ней).
Модуль ставил. Но за редкой необходимостью менять клавиши именно на лету, очень редко его использовал. К тому же с самыми последними изменениями в Фаре пришлось его совсем отключить — т.к. и Ваш фикс теперь уже не помогает.
Для удобства пользования модулем можно использовать LuaManager (мой выбор ;))или Macro Browser alt.
И LuaManager, и Macro Browser alt. периодически использую вне связи с модулем.

Свои изменения в макросах сабжа подкорректировал, а то предыдущий вариант не вполне решал задачу.

Shmuel
Posts: 5041
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 11 times
Been thanked: 133 times

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

Post by Shmuel » Sun 20 Mar, 2016 12:30

sToLp wrote: К тому же с самыми последними изменениями в Фаре пришлось его совсем отключить — т.к. и Ваш фикс теперь уже не помогает.
А что конкретно не работает в Rebind? Я что-то не могу вспомнить, какие изменения последнего времени в Far или LuaMacro могли сломать Rebind. Вариант IgorZ я не пробовал, а попробовал со своим последним патчем - вроде работает.

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

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

Post by sToLp » Sun 20 Mar, 2016 14:52

Shmuel wrote: А что конкретно не работает в Rebind?
Посмотрел у себя. В отключённом модуле пометка: -- 2016.03.10 отключён из-за AltF4 в меню выбора макросов. Сейчас смутно вспоминаю, что после обновления до актуальной ночной сборки на тот момент было множество ошибок при попытках применить AltF4 в меню выбора макросов, со ссылкой в них на модуль. И после его отключения ошибки пропали. В подробности тогда не вдавался, недосуг было.
После Вашего вопроса попробовал включить модуль (в редакции с правкой IgorZ Fri 20 Nov, 2015 06:11), и вроде бы он действительно нормально работает. Вот всё, что я могу доложить.

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

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

Post by John Doe » Tue 10 May, 2016 00:40

Спасибо за скрипт, когда-то я думал довести до ума свой прототип, но не сложилось (viewtopic.php?f=60&t=7934)

В вашем показалось сильно неудобным каждый раз выбирать GLOBAL/LOCAL с помощью меню (зачастую избыточного, не все плагины имеют оба профиля).
Мне кажется было бы удобнее переключаться между режимами с помощью хоткея, плюс как-то индицировать наличие L/G профиля того или иного плагина.

P.S.
И намеренно ли в меню плагинов между "DB" и "editor" получилось два пробела?

P.P.S.
В базе luamacro при использовании стандартных msave для сохранения таблиц получаются характерные значения, в виде кода.
Было бы неплохо как-то отображать такие таблицы в более натуральном виде.

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Tue 10 May, 2016 06:17

John Doe wrote:
Мне кажется было бы удобнее переключаться между режимами с помощью хоткея, плюс как-то индицировать наличие L/G профиля того или иного плагина.
Посмотрю, но переделка может оказаться объёмной, так что пока ничего не обещаю.
John Doe wrote:P.S.
И намеренно ли в меню плагинов между "DB" и "editor" получилось два пробела?
Нет. Небольшая ненамеренная кривоватость в языковых файлах. Пропущена из-за того, что я всё-таки пользуюсь русским языком, английский только "на экспорт". Уже поправил, выложу после того, как станет ясна судьба первого предложения.
John Doe wrote:P.P.S.
В базе luamacro при использовании стандартных msave для сохранения таблиц получаются характерные значения, в виде кода.
Было бы неплохо как-то отображать такие таблицы в более натуральном виде.
Думал над этим. Отказался, потому что редактировать (по F4) всё равно нужно код. Разве что дополнительно к Lua коду показывать результат исполнения? Прикину, как это будет выглядеть.
Last edited by IgorZ on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: Спрятан оверквотинг

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Wed 11 May, 2016 10:18

Версия 2.0.1 - Если локальная или глобальная БД плагина пуста, отрывается сразу корень другой. Переход на выбор LOCAL/GLOBAL - CtrlPgUp. Вывод в заголовке текущего местоположения. Для типа данных F.FST_DATA выводится также значение. Различные правки.
John Doe wrote:В вашем показалось сильно неудобным каждый раз выбирать GLOBAL/LOCAL с помощью меню (зачастую избыточного, не все плагины имеют оба профиля).
Мне кажется было бы удобнее переключаться между режимами с помощью хоткея, плюс как-то индицировать наличие L/G профиля того или иного плагина.
Теперь, если локакльного профиля у плагина нет, сразу открывается глобальный. И наоборот. Если нажать CtrlPgUp, то откроется самый корень, как в предыдущей версии. Для другого поведения пришлось бы слишком много переделывать, так что, надеюсь, устроит этот вариант.
John Doe wrote:В базе luamacro при использовании стандартных msave для сохранения таблиц получаются характерные значения, в виде кода.
Было бы неплохо как-то отображать такие таблицы в более натуральном виде.
Сделал вывод таких данных в несколько строк: исходник в первой и результат в остальных. Все строки реагируют на клавиши одинаково.
В общем, получилось довольно удачно - все переделки или малы, или сделаны на основе кусков из других моих скриптов, так что вышло куда быстрее, чем думал. Однако, пробуйте.

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

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

Post by John Doe » Wed 11 May, 2016 20:13

При попытке посмотреть Conemu Background получаю это

Code: Select all

Error

C:\Apps\Far3\Plugins\LuaMacro\luamacro.dll:
C:\Apps\Far3\Profile\Macros\scripts\Tools\DBEdit\DBEdit.lua:322: attempt to call a nil value
Stack Traceback
===============
(2)  C function 'function: 0x031f5898'
(3)  upvalue 'LuaToTbl' at file 'C:\Apps\Far3\Profile\Macros\scripts\Tools\DBEdit\DBEdit.lua:322'
   Local variables:
    elem = table: 0x0423b2a8  {type:4, parent:GLOBAL, name:PluginEnabled, value:
    s = table: 0x042a39a0  {}
    AddOne = Lua function 'AddOne' (defined at line 317 of chunk C:\Apps\Far3\Profile\Macros\scripts\Tools\DBEdit\
DBEdit.lua)
    (*temporary) = Lua function 'AddOne' (defined at line 317 of chunk C:\Apps\Far3\Profile\Macros\scripts\Tools\
DBEdit\DBEdit.lua)
    (*temporary) = nil
    (*temporary) = string: "[string \"\"]:1: unexpected symbol"
    (*temporary) = nil
    (*temporary) = string: "attempt to call a nil value"
(4) Lua upvalue 'ShowMenu' at file 'C:\Apps\Far3\Profile\Macros\scripts\Tools\DBEdit\DBEdit.lua:353'
   Local variables:
    root = string: "GLOBAL"
    Bottom = string: "Enter, Esc, F1, F2, F3, F4, F5, F10, Ins, Del, CtrlPgUp, CtrlS"
    pos = number: 1
    res = table: 0x038238d8  {BreakKey:C+S}
    HotKeys = table: 0x042a6808  {1:table: 0x037a72a0, 2:table: 0x042a68d8, 3:table: 0x04269308, 4:table: 
0x0410a260 (more...)}
    DBChanged = boolean: true
    tbl = table: 0x0423b240  {XmlConfigFile:table: 0x0385bd68, PluginEnabled:table: 0x0423b2a8}
    items = table: 0x0278ac30  {1:table: 0x0278ac58, 2:table: 0x0423afc8}

OK
Update
В списке плагинов присутствуют даже те, у которых настроек нет совсем, и вот при попытке их посмотреть видим пустые менюшки GLOBAL/LOCAL.
В идеале не отображать такие плагины вовсе
Хотя наверно в момент показа списка скрипт ещё не обладает это информацией..
Как вариант, по нажатию какой-нибудь комбинации клавиш можно всё-таки читать настройки всех плагинов, и убирать "пустые" пункты.
Ещё можно слева от имени с помощью L/G индицировать что где у плагина настройки.

И одно имхо.
Мне кажется логичнее если пункт в меню плагинов будет всегда предлагать список плагинов (курсор на последнем выбранном).
А для быстрого открытия последнего - хоткей, как и сейчас.

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Thu 12 May, 2016 12:48

Версия 2.0.2 - Исправлена ошибка со значением переменннй типа FST_DATA, не приводящимся к функции. Экспериментально: при вызове из меню плагинов выводится меню выбора БД. Рефакторинг, исправление мелких ошибок, вылезших в последней версии.
John Doe wrote:При попытке посмотреть Conemu Background получаю это
Поправил. Раньше никогда не встречал такой кривой вариант: там надо бы в формате FST_QWORD как 1 сохранять, а не в формате FST_DATA как строку chr(1).
John Doe wrote:В списке плагинов присутствуют даже те, у которых настроек нет совсем, и вот при попытке их посмотреть видим пустые менюшки GLOBAL/LOCAL.
В идеале не отображать такие плагины вовсе
С какой стати? В пустую базу можно вносить данные вручную (Ins), или импортировать из файла (F3). Но как это делать, если база не может быть открыта, поскольку отсутствует в списке? (Нет, можно через префикс, но зачем так извращаться?) Это как если бы в текстовом редакторе запрещали создавать новые файлы. Все базы должны быть равноправны, независимо от их содержимого.
John Doe wrote:Мне кажется логичнее если пункт в меню плагинов будет всегда предлагать список плагинов (курсор на последнем выбранном).
А для быстрого открытия последнего - хоткей, как и сейчас.
Сделал. Если вдруг народ будет сильно возмущаться, верну старый вариант.

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

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

Post by John Doe » Thu 12 May, 2016 16:22

IgorZ wrote: Все базы должны быть равноправны, независимо от их содержимого.
Не буду спорить, смысл в этом есть.
И вроде бы моё предложение тут ничему не противоречит:
John Doe wrote: Как вариант, по нажатию какой-нибудь комбинации клавиш можно всё-таки читать настройки всех плагинов, и убирать "пустые" пункты.
Ещё можно слева от имени с помощью L/G индицировать что где у плагина настройки.

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Fri 13 May, 2016 05:57

John Doe wrote:И вроде бы моё предложение тут ничему не противоречит:
John Doe wrote: Как вариант, по нажатию какой-нибудь комбинации клавиш можно всё-таки читать настройки всех плагинов, и убирать "пустые" пункты.
Ещё можно слева от имени с помощью L/G индицировать что где у плагина настройки.
Посмотрю, если не слишком накладно, попробую сделать. Но, просто ради интереса: зачем? Не получается представить ситуацию, в которой данная функциональность понадобится.

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Fri 13 May, 2016 07:30

John Doe wrote:Как вариант, по нажатию какой-нибудь комбинации клавиш можно всё-таки читать настройки всех плагинов, и убирать "пустые" пункты.
Ещё можно слева от имени с помощью L/G индицировать что где у плагина настройки.
Набросал вариант. Несмотря на оптимизацию, работает в 20 раз медленнее (340мс против 17мс без проверки на наличие данных). Прилагаю тестовый вариант (только исполняемый, языковые не менялись). Для тестирования в начале файла определена SEL_PLUGIN_EXT, выбирающая, какой функцией пользоваться - старой или новой, расширенной. Показ "пустых" баз переключается по CtrlH.
Attachments
DBEdit.lua.testSelectPluginExtended.7z
(9.28 KiB) Downloaded 22 times

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

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

Post by John Doe » Fri 13 May, 2016 23:18

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

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Tue 17 May, 2016 07:37

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

IgorZ
Posts: 448
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 5 times
Been thanked: 8 times

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

Post by IgorZ » Thu 19 May, 2016 12:06

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

Post Reply

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

Who is online

Users browsing this forum: No registered users and 2 guests