Менеджер Lua-скриптов для Farа

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

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.









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

Начиная с версии 4.0, скрипт выполнен в виде модуля и набора вызывающих макросов.

Attachments
LuaManager.6.0.2.7z
Версия для Far 3.0.0.5934+
(65.47 KiB) Downloaded 96 times
LuaManager.5.2.0.7z
Версия для Far 3.0.0.5210+
(58.78 KiB) Downloaded 221 times
LuaManager.5.0.6.7z
Последняя опубликованная версия, поддерживающая Far 3.0.0.4000 и выше
(59.02 KiB) Downloaded 355 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 523 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
User avatar
Wave
Posts: 1887
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

Менеджер Lua-скриптов для Farа

Post by Wave »

Latest post of the previous page:

Понял, спасибо :)
Пользуюсь ФАРом больше 20 лет © собирательный.
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 2.3.0 - Изменён принцип загрузки скрипта как модуля. Улучшена работа с файлами справки. Мелкие правки.

Следствия:
  1. Проблем с модулями теперь не должно быть от слова "вообще". Скрипт не добавляет себя в пути, а добавляет свой персональный загрузчик в конец списка. При этом, помещённый в папку для модулей, он грузится как самый обычный модуль.
  2. Скрипт снова может лежать в одной папке с другими. Нет необходимости заводить отдельную папку.
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 2.3.1 - Добавлена обработка параметра sortpriority. Мелкие правки.
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 2.3.2 -
  • Добавлена возможность редактирования в диалоговом окне Macro/Event под курсором. Строили мы строилиПисал я писал, и, наконец, написал. Ура! Работает следующим образом: если курсор стоит в пределах Macro/Event, нажимаем CtrlF12 (по умолчанию), и, если всё в порядке, открывается стандартное диалоговое окно с данным Macro/Event. Если в порядке не всё, получаем чёрную метку предупреждение.
  • Смена места хранения данных. Внимание: в связи с данным новшеством рекомендую перенести настройки скрипта при помощи специальной утилиты. Хотя, в принципе, должен и старые настройки находить, если новых нет. Но не гарантирую, что в любых обстоятельствах, и что так будет и в последующих версиях.
  • Мелкие правки.
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 3.0.0 - Добавлена поддержка MenuItem и CommandLine. Рефакторинг. Разные правки.
Поскольку всяких исправлений в сумме набралось достаточно много, оставляю на всякий случай предыдущую версию. Хотя за время написания и тестирования ошибок не замечено.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

ShiftI (как и ShiftP) приводит к ошибке
  1. Error
  2.  
  3.  
  4.  
  5. C:\Apps\Far3\Plugins\LuaMacro\luamacro.dll:
  6.  
  7. ...3\Profile\Macros\scripts\Macro\LuaManager\LuaManager.lua:443: attempt to get length of local 'SV' (a nil value)
  8.  
  9. Stack Traceback
  10.  
  11. ===============
  12.  
  13. (2) metamethod C function '__len'
  14.  
  15. (3) Lua upvalue 'SortingOrder' at file 'C:\Apps\Far3\Profile\Macros\scripts\Macro\LuaManager\LuaManager.lua:443'
  16.  
  17.    Local variables:
  18.  
  19.     sSO = string: "P"
  20.  
  21.     SV = nil
  22.  
  23.     Pos = nil
  24.  
  25.     (*temporary) = number: 1
  26.  
  27.     (*temporary) = string: "P"
  28.  
  29.     (*temporary) = number: 1
  30.  
  31.     (*temporary) = nil
  32.  
  33.     (*temporary) = nil
  34.  
  35.     (*temporary) = number: 2
  36.  
  37.     (*temporary) = table: 0x03993598  {hDlg:FarDialog (0x024abba0), Msg:4116, Param1:1, Param2:table: 0x0427ae68 (
  38.  
  39. more...)}
  40.  
  41.     (*temporary) = number: 9.12691e-313
  42.  
  43.     (*temporary) = table: 0x039dad80  {1:table: 0x02cf7550, 2:table: 0x0302a1d0, 3:table: 0x03c7b9d8, 4:table:
  44.  
  45. 0x03c8f580 (more...)}
  46.  
  47.     (*temporary) = nil
  48.  
  49.     (*temporary) = table: 0x039935c0  {1:2, 2:11, 3:1, 4:3, 5:4, 6:5, 7:6, 8:7, 9:8, 10:9, 11:10, 12:12, 13:13 (
  50.  
  51. more...)}
  52.  
  53.     (*temporary) = table: 0x03966ea8  {1:-1, 2:50, 3:-1, 4:-1, 5:-1, 6:-1, 7:-1, 8:-1, 9:-1, 10:-1, 11:50, 12:-1 (
  54.  
  55. more...)}
  56.  
  57.     (*temporary) = C function: builtin#6
  58.  
  59.     (*temporary) = table: 0x039935c0  {1:2, 2:11, 3:1, 4:3, 5:4, 6:5, 7:6, 8:7, 9:8, 10:9, 11:10, 12:12, 13:13 (
  60.  
  61.  
  62.  
  63. OK
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

Версия 3.0.1 - Исправлена глупая очепятка в английском языковом файле.
User avatar
John Doe
Бюрократ
Posts: 13860
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

Менеджер Lua-скриптов для Farа

Post by John Doe »

Пожелания:
1. При выводе справки учитывать язык справки фара
2. Сделать настройки Max field width более гибкими
а) Нет возможности зафиксировать ширину поля key без переноса на следующую строку
б) Хочу зафиксировать ширину поля key (20), а description при этом выводить в одну строку (0).
Это сейчас невозможно (и ограничение описано в справке)

Мелочи, в принципе, не особо важно.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Менеджер Lua-скриптов для Farа

Post by buniak_a_h »

Странное поведение в пункте «Настройка параметров сортировки» (ShiftM). См. картинки ниже:


После клика на первый [X]:


После клика на единственный [?]:


Это так и задумывалось?
Ну и есть сильный недостаток по сравнению с плагином Macro Library (пункт List): фильтрация там намного удобнее. Более того! Если я настраиваю фильтр, то видны все (правда, серенькие). А нельзя их скрыть совсем?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Менеджер Lua-скриптов для Farа

Post by buniak_a_h »

Есть ещё пожелание относительно формы настройки, вызываемой по [b]F9[/b]. Там три кнопки:
{ Сохранить } [ Применить до выхода ] [ Отмена ].
Я бы порекомендовал сделать две ({ Сохранить } [ Отмена ]), а в случае сохранения добавить вопрос - насовсем или на этот сеанс работы. И, возможно, добавить клавишу для вызова настроек БЕЗ вызова списка. В этом случае настройки сохранить насовсем. Или в крайнем случае убрать флаг DIF_DEFAULTBUTTON от "Сохранить". А то случайно жмёшь Enter при установленном фильтре - потом удивляешься, что чего-то не видно...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Менеджер Lua-скриптов для Farа

Post by HaRT »

buniak_a_h wrote: в случае сохранения добавить вопрос
Это ухудшит UX, т.к. добавит лишнее действие при сохранении. Насчёт изменения кнопки по умолчанию ничего плохого сказать не могу.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Менеджер Lua-скриптов для Farа

Post by buniak_a_h »

HaRT wrote: Это ухудшит UX, т.к. добавит лишнее действие при сохранении
Идея позаимствована у MicroSoft - изменение параметров консоли в Windows XP. Впрочем, не настаиваю. Но либо (а) кнопка "сохранить" не должна быть по умолчанию, либо (б) не должна включать сохранение фильтра. Остальное безопасно.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
IgorZ
Posts: 793
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

Менеджер Lua-скриптов для Farа

Post by IgorZ »

buniak_a_h wrote:Странное поведение в пункте «Настройка параметров сортировки» (ShiftM). См. картинки ниже:

После клика на первый [X]:
Единственно возможное поведение. После изменения какого-то пункта последующие могут быть какими угодно. А если он отключён ([?]), то последующих вообще не может быть.
buniak_a_h wrote:После клика на единственный [?]:

Это так и задумывалось?
На второй картинке сортировка отключена вообще. После клика была включена сортировка по одному параметру и возможность добавить ещё один параметр сортировки. Если сумеете предложить более гибкую и удобную систему - я Вас слушаю.
Что, возможно, действительно стоит сделать - добавить справку в тот диалог. Возможно, я ошибался, считая, что логика там абсолютно прозрачна.
buniak_a_h wrote:Ну и есть сильный недостаток по сравнению с плагином Macro Library (пункт List): фильтрация там намного удобнее.
Фильтрации там нет. Там есть быстрая фильтрация. Нажмите правый Alt, и она появится и здесь.
buniak_a_h wrote:Более того! Если я настраиваю фильтр, то видны все (правда, серенькие). А нельзя их скрыть совсем?
Кто видны?
buniak_a_h wrote:Есть ещё пожелание относительно формы настройки, вызываемой по [b]F9[/b]. Там три кнопки:
{ Сохранить } [ Применить до выхода ] [ Отмена ].
Я бы порекомендовал сделать две ({ Сохранить } [ Отмена ]), а в случае сохранения добавить вопрос - насовсем или на этот сеанс работы.
Уже ответили. Дополнительное подтверждение для действий, не уничтожающих информацию - зло.
buniak_a_h wrote:И, возможно, добавить клавишу для вызова настроек БЕЗ вызова списка.
Что Вы имеете в виду?
buniak_a_h wrote:Или в крайнем случае убрать флаг DIF_DEFAULTBUTTON от "Сохранить". А то случайно жмёшь Enter при установленном фильтре - потом удивляешься, что чего-то не видно...
А как можно случайно нажать Enter? Да и подобные действия легко отменяются. А реакция "Подтвердить изменения и закрыть" на Enter в диалоге - стандартна и общепринята.
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Менеджер Lua-скриптов для Farа

Post by buniak_a_h »

IgorZ wrote: Что, возможно, действительно стоит сделать - добавить справку в тот диалог
Это да. Обескураживает, когда пытаешься выключить сортировку по обрасти, а в результате теряются все сортировки. И остаётся пустой значок [?] без пояснений...
IgorZ wrote: Нажмите правый Alt, и она появится и здесь
Спасибо, не дочитал хелп, видимо... Хотя вот попробовал - не получилось у меня отфильтровать по коду клавиши
IgorZ wrote: Кто видны?
Видимо, я ошибся... Вчера стало фильтроваться. Перепроверю ещё.
IgorZ wrote: для действий, не уничтожающих информацию
В том-то и дело, что фильтр создаёт видимость уничтожения информации, и если его случайно (?) сохранить, то при следующем вызове макроса создаётся впечатление, что «всё пропало, шеф!»
IgorZ wrote: Что Вы имеете в виду?
Я имел в виду добавить сочетание, по которому вызывается окошко, доступное по F9 из макроса. Отличие от того F9, что вызывается из макроса, в одном: из макроса кнопка "сохранить" действует только на эту сессию, не запоминается в БД. А из "отдельного окна" - сохранять настройки в базе.
IgorZ wrote: Да и подобные действия легко отменяются
Увы, не всегда легко... Надо помнить предыдущие настройки.
IgorZ wrote: А реакция "Подтвердить изменения и закрыть"
В том-то и дело, что в Вашем диалоге не одна кнопка "подтвердить изменения", а две. Подтвердить временные и подтвердить постоянные. И после закрытия диалога можно просто забыть, что сохранил изменения навсегда. А потом удивляться, почему не видно...
---
Тут ещё возникла идея: может, вместо трёх кнопок сделать две ("сохранить"/"отмена") с чекбоксом "запомнить выбор навсегда" ?
IgorZ wrote: А как можно случайно нажать Enter?
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
User avatar
HaRT
Moderator
Posts: 10866
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

Менеджер Lua-скриптов для Farа

Post by HaRT »

IgorZ wrote: Если сумеете предложить более гибкую и удобную систему - я Вас слушаю.
Я согласен, что пропадание всего настроенного списка при переключении верхнего пункта пугает и обескураживает. Предлагаю, чтобы вместо удаления последующие пункты „засеривались“ — так пользователю будет сразу понятно, что произошло. Ну и не помешает возможность удалять отдельные поля из списка сортировки, а также передвигать их вверх/вниз.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
buniak_a_h
Posts: 4268
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

Менеджер Lua-скриптов для Farа

Post by buniak_a_h »

IgorZ wrote: Если сумеете предложить более гибкую и удобную систему - я Вас слушаю.
Например, при выключении некоторого пункта передвигать его вниз, остальные подтягивать кверху.
Правильно ли я понимаю, что порядок строк определяет приоритет критериев сортировки? Тогда логично будет при выключении первичного ключа сортировать по второму и т.д.
Кстати, что там может означать [?] - уж совсем непонятно. Сортировать или нет при каких-то дополнительных условиях?
Короче, видимо, хелп нужен.
HaRT wrote: Ну и не помешает возможность <...> а также передвигать их вверх/вниз.
Согласен.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
Post Reply

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