TableView — диалог-браузер таблиц Lua
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
TableView — диалог-браузер таблиц Lua
Первоначальный автор — maxdrfl.
Макрос назначен на CtrlShiftF11 в области Common. Отредактируйте, кто хочет другие значения.
Установка: распаковать приложенный архив в "%FARPROFILE%\Macros"
ПРЕДУПРЕЖДЕНИЕ: РЕДАКТИРОВАНИЕ ВЕЛИЧИН Lua МОЖЕТ ПРИВЕСТИ К НЕРАБОТОСПОСОБНОСТИ МАКРОСОВ И ПРОЧИМ НЕЖЕЛАТЕЛЬНЫМ ПОСЛЕДСТВИЯМ.
Макрос назначен на CtrlShiftF11 в области Common. Отредактируйте, кто хочет другие значения.
Установка: распаковать приложенный архив в "%FARPROFILE%\Macros"
ПРЕДУПРЕЖДЕНИЕ: РЕДАКТИРОВАНИЕ ВЕЛИЧИН Lua МОЖЕТ ПРИВЕСТИ К НЕРАБОТОСПОСОБНОСТИ МАКРОСОВ И ПРОЧИМ НЕЖЕЛАТЕЛЬНЫМ ПОСЛЕДСТВИЯМ.
- Attachments
-
- tableview-20150720.7z
- Commits on Jul 20, 2015
- (5.96 KiB) Downloaded 163 times
Last edited by Shmuel on Thu 01 Jan, 1970 01:00, edited 0 times in total.
Reason: https://github.com/shmuz/far_plugins/commit/da879396339bd1c54f1aceee98c81cb6fb210ebe
Reason: https://github.com/shmuz/far_plugins/commit/da879396339bd1c54f1aceee98c81cb6fb210ebe
Re: TableView - диалог-браузер таблиц Lua
Спасибо, отличный скрипт.
А возврат по Backspace лучше заменить на что-то другое, т.к. конфликтует с удалением символа в фильтре (если он включён по Ctrl-Alt-F)
А возврат по Backspace лучше заменить на что-то другое, т.к. конфликтует с удалением символа в фильтре (если он включён по Ctrl-Alt-F)
2B OR NOT 2B = FF (Иногда code - это просто код. Почти Дйерф Омолш Днумзигис)
To ban or not to ban, that is the question. ©
To ban or not to ban, that is the question. ©
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Заменить-то можно, но фильтр этот - неэффективен, так как не может фильтровать только по одной колонке. Надо наверное делать встроенный фильтр.DAtaMan wrote:А возврат по Backspace лучше заменить на что-то другое, т.к. конфликтует с удалением символа в фильтре (если он включён по Ctrl-Alt-F)
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView - диалог-браузер таблиц Lua
Похоже на баг.
Браузер отображает информацию не соответствующую контексту, из которого вызван.
А именно: информация берётся из контекста самого диалога-браузера (cм. таблицы Dlg и Menu).
Исправимо?
Браузер отображает информацию не соответствующую контексту, из которого вызван.
А именно: информация берётся из контекста самого диалога-браузера (cм. таблицы Dlg и Menu).
Исправимо?
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Это действительно баг (известный мне). Исправимый.
Утилита была написана несколько лет назад для LuaFAR-плагинов. Её дизайн предполагает, что диалог во время действий пользователя всё время открыт, а изменения отображаются в списке. Свойства (properties), которых не было изначально, были добавлены в последнее время, и тут-то выяснилось, что прежде, чем их считывать, диалог надо закрывать, а после считывания - переоткрывать. Но это пока не сделано.
Утилита была написана несколько лет назад для LuaFAR-плагинов. Её дизайн предполагает, что диалог во время действий пользователя всё время открыт, а изменения отображаются в списке. Свойства (properties), которых не было изначально, были добавлены в последнее время, и тут-то выяснилось, что прежде, чем их считывать, диалог надо закрывать, а после считывания - переоткрывать. Но это пока не сделано.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView — диалог-браузер таблиц Lua
Актуализировал макрос, взяв свежий исходник с https://github.com/shmuz/luafar4editor/
В модуле заменил вызов showDialog на return showDialog (я с luafar4editor знаком плохо, и не знаю какой смысл был в модуле который ничего не возвращает).
Вся функциональность в модулях, а макрос лаконичен: Точно так же TableView можно использовать и в своих скриптах, для просмотра любых таблиц.
P.S.
Надо бы актуализировать шапку, и тогда можно будет перенести тему в форум готовых макросов.
В модуле заменил вызов showDialog на return showDialog (я с luafar4editor знаком плохо, и не знаю какой смысл был в модуле который ничего не возвращает).
Вся функциональность в модулях, а макрос лаконичен: Точно так же TableView можно использовать и в своих скриптах, для просмотра любых таблиц.
P.S.
Надо бы актуализировать шапку, и тогда можно будет перенести тему в форум готовых макросов.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Причина проста: файл лежит вместе с модулями, но модулем не является. Скрипты (не модули) в LF4Ed также ищутся с использованием package.path.John Doe wrote:Актуализировал макрос, взяв свежий исходник с https://github.com/shmuz/luafar4editor/
В модуле заменил вызов showDialog на return showDialog (я с luafar4editor знаком плохо, и не знаю какой смысл был в модуле который ничего не возвращает).
Полностью вам доверяю.John Doe wrote:Надо бы актуализировать шапку, и тогда можно будет перенести тему в форум готовых макросов.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView - диалог-браузер таблиц Lua
Задался целью исправить это макросом, но не вышло Я надеялся что NoSendKeysToPlugins поможет, но видимо дело в том, что TableView это не плагин...DAtaMan wrote:А возврат по Backspace лучше заменить на что-то другое, т.к. конфликтует с удалением символа в фильтре (если он включён по Ctrl-Alt-F)
Как же быть?
Хочется иметь возможность нажать честную клавишу не передавая её обработчику диалога.
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Допустим, получилось бы. А как тогда редактировать фильтр?John Doe wrote:Хочется иметь возможность нажать честную клавишу не передавая её обработчику диалога.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView - диалог-браузер таблиц Lua
Не уверен что понял вопрос.
Задача в том, чтобы при непустом фильтре пропустить обработчик плагина/скрипта, и передать клавишу в фаровский обработчик, а он уже позаботится о фильтре.
(я могу ошибаться, т.к. не вник ещё в тонкости обработки событий диалогов)
Задача в том, чтобы при непустом фильтре пропустить обработчик плагина/скрипта, и передать клавишу в фаровский обработчик, а он уже позаботится о фильтре.
(я могу ошибаться, т.к. не вник ещё в тонкости обработки событий диалогов)
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Насколько я понимаю, при включённом фильтре как раз нажатия не доходят до обработчика скрипта, а прямо идут в фаровский обработчик.
А, попробовал сейчас - я не прав. Просто "чукча не читатель" (я разрабатываю этот скрипт, но пока что не пользовался им совершенно).
А, попробовал сейчас - я не прав. Просто "чукча не читатель" (я разрабатываю этот скрипт, но пока что не пользовался им совершенно).
Last edited by Shmuel on Sat 06 Apr, 2013 22:39, edited 1 time in total.
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView - диалог-браузер таблиц Lua
Code: Select all
showDialog('_G',) - отображает таблицу _G, получая её по адресу
Исправимо?
(о том, что можно явно указать я знаю)
P.S.
добавил пока в функцию PathToTable строку setfenv(func, getfenv(4))
-
- Posts: 6820
- Joined: Thu 23 Mar, 2006 21:36
- Location: Israel
- Has thanked: 41 times
- Been thanked: 528 times
Re: TableView - диалог-браузер таблиц Lua
Думаю, что всё исправимо, но я как бы сейчас не в теме, так как давно сабж не трогал (и не пользуюсь). Может когда-нибудь снова возьмусь.John Doe wrote:Работает со всеми глобальными таблицами, но локальные получить не может.
Исправимо?
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
Re: TableView — диалог-браузер таблиц Lua
Если вдруг, то вот ещё пожелания:
[*] диалог маленький, и если ключи какой-то таблицы достаточно длинные, то нет никакой возможности их увидеть полностью.
В lua_explorer если открыть такой элемент на просмотр, то ключ будет в заголовке, а в tableview и этого нет
[*] по кнопке Down курсор переходит из поля ввода в листбокс.
По кнопке Up желательно иметь возможность вернуться из листбокса в поле ввода
[*] диалог маленький, и если ключи какой-то таблицы достаточно длинные, то нет никакой возможности их увидеть полностью.
В lua_explorer если открыть такой элемент на просмотр, то ключ будет в заголовке, а в tableview и этого нет
[*] по кнопке Down курсор переходит из поля ввода в листбокс.
По кнопке Up желательно иметь возможность вернуться из листбокса в поле ввода
- John Doe
- Бюрократ
- Posts: 13807
- Joined: Wed 27 Apr, 2005 20:42
- Has thanked: 73 times
- Been thanked: 426 times
- Contact:
TableView — диалог-браузер таблиц Lua
Вложение в первом посте обновлено на основании актуальных исходников.