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

Здесь выкладываются готовые к использованию макросы и скрипты.
IgorZ
Posts: 791
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 95 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 354 times
LuaManager.3.1.11.7z
Последняя версия, выполненная не в виде модуля
(50.56 KiB) Downloaded 521 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Latest post of the previous page:

buniak_a_h wrote:
IgorZ wrote: для действий, не уничтожающих информацию
В том-то и дело, что фильтр создаёт видимость уничтожения информации, и если его случайно (?) сохранить, то при следующем вызове макроса создаётся впечатление, что «всё пропало, шеф!»
Вообще-то, наличие фильтрации отображается на экране. Видимо, и на это придётся обратить внимание в справке.
buniak_a_h wrote:
IgorZ wrote: Что Вы имеете в виду?
Я имел в виду добавить сочетание, по которому вызывается окошко, доступное по F9 из макроса. Отличие от того F9, что вызывается из макроса, в одном: из макроса кнопка "сохранить" действует только на эту сессию, не запоминается в БД. А из "отдельного окна" - сохранять настройки в базе.
Нажмите F1 в главном окне и прочитайте внимательно справку. Все действия по настройке делаются с помощью горячих клавиш и не сохраняются напостоянно. Возможно, Вас это устроит даже больше, чем то, что Вы предлагаете.
buniak_a_h wrote:
IgorZ wrote: А как можно случайно нажать Enter?
Работал. И сейчас изредка приходится. Проблем не вызывает. Видимо, каждому - своё.
HaRT wrote:
IgorZ wrote: Если сумеете предложить более гибкую и удобную систему - я Вас слушаю.
Я согласен, что пропадание всего настроенного списка при переключении верхнего пункта пугает и обескураживает. Предлагаю, чтобы вместо удаления последующие пункты „засеривались“ — так пользователю будет сразу понятно, что произошло. Ну и не помешает возможность удалять отдельные поля из списка сортировки, а также передвигать их вверх/вниз.
Это потребует полной переделки диалога. Подумаю, но не факт, что возьмусь.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote: Вообще-то, наличие фильтрации отображается на экране.
Этого мало, имхо.
Например в MacroBrowserAlt фильтрация снимается по Esc.
И по умолчанию не сохраняется между вызовами. Но по отдельному шорткату можно вызвать с прошлым фильтром.
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

John Doe wrote:
IgorZ wrote: Вообще-то, наличие фильтрации отображается на экране.
Этого мало, имхо.
Например в MacroBrowserAlt фильтрация снимается по Esc.
Несколько независимых одновременно наложенных фильтров снимать по одной клавише нехорошо. Можно, конечно, для каждого фильтра сделать отдельную клавишу сброса. Наверное, так и сделаю. Не помешает.
P. S. Ах да, уточню: отображается не только сам факт наличия фильтра, но и его значение.
John Doe wrote:И по умолчанию не сохраняется между вызовами.
LuaManager позволяет менять настройки постоянно - из диалога конфигурации - и временно - из того же диалога конфигурации и главного меню (шорткатами, описано в справке). Именно последним способом чаще всего на практике и пользуюсь.
John Doe wrote:Но по отдельному шорткату можно вызвать с прошлым фильтром.
С которым из? Их несколько: по областям (для макросов), группам (для эвентов), маскам поиска (для модулей), клавишам (для макросов) и имени файла (для всех). И все их комбинации. Так что проще, пожалуй, заново наложить нужные.
User avatar
HaRT
Moderator
Posts: 10863
Joined: Tue 30 Aug, 2005 17:21
Has thanked: 221 times
Been thanked: 358 times

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

Post by HaRT »

IgorZ wrote: Это потребует полной переделки диалога. Подумаю, но не факт, что возьмусь.
Если всё же возьмётесь, то вот ещё соображения: я повспоминал, какая настройка сортировки мне была удобна в каких-то других системах, и пришёл к выводу, что она более-менее одинаковая. Можно выбрать несколько полей/свойств, расположить их в нужном порядке и для каждого выбрать возрастание/убывание. Таким образом, по (разумному) минимум требуется возможность вставить поле в текущую позицию (все последующие смещаются вниз) и удалить выбранное поле; хорошо бы иметь возможность двигать выбранное поле вперёд-назад по списку. Ну и, повторюсь, для каждого поля выбор возрастание/убывание.
Выбор полей можно делать так, как сейчас, — из выпадающего списка для каждого поля, — а можно иметь один список (незадействованных полей) слева, другой (задействованных) справа, и между ними кнопки, чтобы перекидывать из одного в другой. Но можно сделать и относительно спартанский вариант — выкатить полный список полей с трёхпозиционными чекбоксами и возможностью ручной перетасовки. “[?]” — поле не влияет на сортировку; “[x]” — сортировка по возрастанию данного поля; “[ ]” — сортировка по убыванию данного поля.
Фар есть инструмент, а не нянька. © 2009 DrKnS
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote: Несколько независимых одновременно наложенных фильтров снимать по одной клавише нехорошо.
Имхо нормально.
IgorZ wrote: позволяет менять настройки постоянно - из диалога конфигурации
Собственно тут логично не снимать даже, а именно возвращать к тем, что запомнены постоянно.
IgorZ wrote:
Но по отдельному шорткату можно вызвать с прошлым фильтром.
С которым из?
С тем, что был активен на момент закрытия. Со всей комбинацией фильтров.
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

Я прошу прощения, видимо я что-то опять неправильно понял...
Нажал Ins, заполнил всё, что надо. Написал функцию раздела action (то что под цифрой 9), проверил синтаксис. Сохранил (не SaveAs, а просто F2). Оно появилось в окне под "9". Потом нажал на {OK}
1. Получил ошибку в макросе. Диалог типа Ok/Edit - выбрал Edit
2. В редакторе открылся файл LuaManager.lua, там всё перемешано, моя функция вставилась куда-то в середину таблицы - аргумента Macro.
3. Вышел, вызвал из командной строки macro:load - всё ок. Того, что я писал, нигде не нашёл. Дата файла LuaManager.lua - новая.
Что я делал не так? И где искать то, что я писал?
Last edited by buniak_a_h on Thu 16 Jun, 2016 21:37, edited 1 time in total.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
User avatar
buniak_a_h
Posts: 4262
Joined: Sat 20 Apr, 2013 00:17
Location: Санкт-Петробад
Has thanked: 222 times
Been thanked: 644 times
Contact:

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

Post by buniak_a_h »

А! И,кстати, насчёт даты файла LuaManager.lua каждый раз, когда я жму в макросе Ins, дата меняется (даже если я не сохраняю - вообще ничего не делаю!) Я понимаю, это - не ошибка, а особенность, но пугает... Что я там наменял не ведая?...
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

John Doe wrote:
IgorZ wrote: Несколько независимых одновременно наложенных фильтров снимать по одной клавише нехорошо.
Имхо нормально.
IgorZ wrote: позволяет менять настройки постоянно - из диалога конфигурации
Собственно тут логично не снимать даже, а именно возвращать к тем, что запомнены постоянно.
CtrlL в главном меню уже давно позволяет заново загрузить все настройки из БД. По-моему, это как раз то, о чём Вы говорите.
John Doe wrote:
IgorZ wrote:
Но по отдельному шорткату можно вызвать с прошлым фильтром.
С которым из?
С тем, что был активен на момент закрытия. Со всей комбинацией фильтров.
Подумаю. Может, и сделаю, но не в этой версии. А то уже много всего накопилось, надо бы релиз выкатывать с тем, что сделано.
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

buniak_a_h wrote:Я прошу прощения, видимо я что-то опять неправильно понял...
Нажал Ins, заполнил всё, что надо. Написал функцию раздела action (то что под цифрой 9), проверил синтаксис. Сохранил (не SaveAs, а просто F2). Оно появилось в окне под "9". Потом нажал на {OK}
Всё правильно. За одним исключением: судя по дальнейшему описанию, Вы пытались вставить макрос в LuaManager.lua (по Ins новый скрипт вставляется в тот файл, в котором находится скрипт под курсором). Это приведёт к тому, что при обновлении LuaManager на новую версию вставленный макрос потеряется. Лучше в таких случаях пользоваться своим файлом.
И кстати, при редактировании .lua-файла можно вставить скрипт в позицию курсора, нажав CtrlF11. В принципе, это всё описано и в справке LuaManager, и в первом посте темы, и в начале LuaManager.lua.
buniak_a_h wrote:1. Получил ошибку в макросе. Диалог типа Ok/Edit - выбрал Edit
Здесь без текста ошибки не могу ничего сказать.
buniak_a_h wrote:2. В редакторе открылся файл LuaManager.lua, там всё перемешано, моя функция вставилась куда-то в середину таблицы - аргумента Macro.
3. Вышел, вызвал из командной строки macro:load - всё ок. Того, что я писал, нигде не нашёл. Дата файла LuaManager.lua - новая.
Что я делал не так? И где искать то, что я писал?
А не был ли увас на тот момент уже открыт LuaManager.lua в этом же или другом экземпляре Far? Такой результат можно получить, если у Вас был открыт файл в редакторе, затем по Edit Вы открыли его вновь, закрыли, а потом сохранили текст из первоначально открытого редактора.
И да, при таком варианте событий искать то, что Вы писали, бесполезно. Разве что в Вашей памяти...
buniak_a_h wrote:А! И,кстати, насчёт даты файла LuaManager.lua каждый раз, когда я жму в макросе Ins, дата меняется (даже если я не сохраняю - вообще ничего не делаю!) Я понимаю, это - не ошибка, а особенность, но пугает... Что я там наменял не ведая?...
А это - ошибка. Впрочем, кажется, не фатальная - я просто зачем-то записываю в файл его же старое содержимое. Надо поправить, а то некрасиво.
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

IgorZ wrote: По-моему, это как раз то, о чём Вы говорите.
Не совсем, т.к. для меня ключевой момент именно в том, чтобы делать это по Esc (по той же клавише которой пользователь закрывает список).
Собственно, управление вашим Менеджером вообще сильно отличается от управления моим Браузером, поэтому не утверждаю, что должно быть как у меня)
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 3.1.0 - При выводе справки используется язык справки фара. Изменена логика настройки ширины колонок - описание в справке. Тем, у кого ширина описания была задана отрицательным числом: для сохранения старого поведения нужно исправить ширину колонки описания на положительное число, большее ширины экрана. 1000, думаю, хватит ;). Изменена логика работы с фильтром клавиш на более разумную. Рефакторинг. Доработана справка, читайте и высказывайтесь. Мелкие правки. Добавлены новые комбинации клавиш, так что ознакомьтесь в той же справке.
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

John Doe wrote:
IgorZ wrote: По-моему, это как раз то, о чём Вы говорите.
Не совсем, т.к. для меня ключевой момент именно в том, чтобы делать это по Esc (по той же клавише которой пользователь закрывает список).
Не люблю, когда несколько разных функций навешены на одну и ту же клавишу. Особенно, когда это Enter или Esc. Чревато.
John Doe wrote:Собственно, управление вашим Менеджером вообще сильно отличается от управления моим Браузером, поэтому не утверждаю, что должно быть как у меня)
Личность автора неизбежно накладывает отпечаток. Я вот (сугубо субъективно) считаю, что вариант с Esc помимо прочего ещё и неудобен тем, что для выхода из состояния с наложенным фильтром надо жать клавишу два раза.
User avatar
buniak_a_h
Posts: 4262
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: (по Ins новый скрипт вставляется в тот файл, в котором находится скрипт под курсором)
Файл LuaManager.lua не был открыт. В панели был открыт директорий с моими исходниками (на Паскале), в редакторе был открыт идин из моих исходников. Решил сделать временный скрипт для однообразной работы. Вызвал Ваш макрос горячей клавишей (не закрывая моего исходника, нажал Ins, т.к в хелпе написано, что это - создание нового скрипта. Думал - либо в конце после "Ок" спросит имя файла для получившегося, либо сгенерирует временное имя и запишет скрипт в какой-нить фиксированный директорий типа %FARPROFILE%\Macros\Scripts\LuaManager\ . Видимо, хелп некорректен всё же...
IgorZ wrote: Здесь без текста ошибки не могу ничего сказать.
Так если lua-файл перемешан, то там может быть любая диагностика! Это - следствие того, что вновь созданный текст вставился в LuaManager.lua
IgorZ wrote: А не был ли у вас на тот момент уже открыт LuaManager.lua
В этом - точно нет. В другом - возможно, я пытался по нему определить, что делать. Но вроде как они не взаимодействуют... Даже через _G
Впрочем, сейчас проверил. Точно не открыт макрос. Точно в этом каталоге ни одна панель не открыта. Диагностика такая:

Code: Select all

...n Data\Far Manager\Profile\Macros\scripts\LuaManager.lua:2549:
'(' expected near 'qqq'
IgorZ wrote: А это - ошибка
Пометил файл RO - получаю вылет :-)
Last edited by buniak_a_h on Sat 18 Jun, 2016 22:26, edited 1 time in total.
Программировать просто. Знай, жми себе на кнопочки... © Владелец IT-компании
User avatar
John Doe
Бюрократ
Posts: 13855
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

RCtrlF11 / Insert command line prefix into current .lua/.moon file
Если в диалоге нажать Enter не заполняя поля, то получим ошибку:

Code: Select all

LuaManager.lua:1647: attempt to concatenate field 'Prefix' (a nil value)
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

buniak_a_h wrote:Вызвал Ваш макрос горячей клавишей (не закрывая моего исходника, нажал Ins, т.к в хелпе написано, что это - создание нового скрипта. Думал - либо в конце после "Ок" спросит имя файла для получившегося, либо сгенерирует временное имя и запишет скрипт в какой-нить фиксированный директорий типа %FARPROFILE%\Macros\Scripts\LuaManager\ . Видимо, хелп некорректен всё же...
Скорее, не хелп, а диалог. Надо бы выводить имя файла, куда вставляется, а лучше, дать возможность его редактировать.
buniak_a_h wrote:Диагностика такая:

Code: Select all

...n Data\Far Manager\Profile\Macros\scripts\LuaManager.lua:2549:
'(' expected near 'qqq'
В общем, вставилось в конец LuaManager.lua, как я и предполагал (и как и положено в данной ситуации), но что-то оказалось некорректно. Возможно, в записанном Вами макросе. Точнее не скажу.
buniak_a_h wrote:
IgorZ wrote: А это - ошибка
Пометил файл RO - получаю вылет :-)
Ага, на такое я не проверял. Спасибо, поправлю такие моменты.
IgorZ
Posts: 791
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

John Doe wrote:RCtrlF11 / Insert command line prefix into current .lua/.moon file
Если в диалоге нажать Enter не заполняя поля, то получим ошибку:

Code: Select all

LuaManager.lua:1647: attempt to concatenate field 'Prefix' (a nil value)
Ага, понял. Забыл поправить после измеенения имени. Если неохота ждать очередного релиза, надо просто заменить в LuaManager.lua все L.Prefix на L.CommandLine.
Post Reply

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