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

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

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

Post by IgorZ » Thu 25 Apr, 2013 04:00

Данный скрипт содержит следующие макросы:
  1. Выводит список всех Lua-скриптов Farа и позволяет манипулировать ими.

    Клавиша вызова по умолчанию: AltShiftF11.
  2. Вставка Lua/Moon скрипта (с выбором, какого типа) в редактируемый .lua/.moon файл.
    Клавиша вызова по умолчанию: LCtrlF11.
  3. Вставка Lua/Moon Macro в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  4. Вставка Lua/Moon Event в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  5. Вставка Lua/Moon MenuItem в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  6. Вставка Lua/Moon CommandLine в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlF11.
  7. Редактирование Lua/Moon скрипта из редактируемого файла.
    Клавиша вызова по умолчанию: CtrlF12.
  8. Вставка строки guid в редактируемый .lua/moon файл.
    Клавиша вызова по умолчанию: RCtrlU.
  9. Перезагрузка всех скриптов.
    Клавиша вызова по умолчанию: CtrlF9.
Требуемая версия Far 3.0.4000+.

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

Attachments
LuaManager.3.1.11.7z
Последняя версия, выполненная в виде скрипта
(50.56 KiB) Downloaded 27 times
LuaManager.4.0.0.7z
Просто последняя версия
(50.22 KiB) Downloaded 38 times

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

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ » Thu 25 Apr, 2013 04:10

1. Огромная благодарность
  • Всей команде Far (включая праотца Рошала) - за него, родимого;
  • Smuel - за LuaFar вообще и за макрос, выводящий список всех скриптов в Farе, послуживший изначальной заготовкой, в частности;
  • SimSU - за макрос InsertMacro, взятый за образец для диалога редактирования;
  • John Doe - за аккуратно собранную в одном месте информацию по обработке событий. Без этого я вряд ли разобрался бы в этом так быстро.
2. Заколебался тестить. Глаз уже замылился, и я пару раз натыкался на тривиальные ошибки в, казалось бы, насквозь проверенных местах. Так что за багрепорты буду благодарен отдельно.

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Менеджер Lua-скриптов для Fara

Post by Max Rusov » Thu 25 Apr, 2013 07:32

1. Это явно лишнее:


2. Часть макросов отказывается редактировать. Зависимость не понял.


Upd. Возможно, это из за того, что область задается через переменную:

Code: Select all

Macro { description="Use Alt-digit to switch between screens";
  area=allScreens; key="/^[LR]Alt[0-9]$/"; 
3. При открытии макроса в редакторе он открывается в модальном режиме. При этом не работают все макросы редактора, т.е. пользоваться этим невозможно. Возможно, лучше открывать в немодальном режиме.

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 07:38

На какую ширину экрана рассчитано меню?

У меня есть длинные перечисления макрообластей, и длинные перечисления клавиш, возможно поэтому расползается.
Обрезать бы

User avatar
Max Rusov
Posts: 3599
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Been thanked: 6 times
Contact:

Re: Менеджер Lua-скриптов для Fara

Post by Max Rusov » Thu 25 Apr, 2013 07:43

Можно области отображать компактно, а из кнопок - только первую. Пример, как сделано в MacroLib:

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

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ » Thu 25 Apr, 2013 08:37

Max Rusov wrote:1. Это явно лишнее:
Возможно. При тестировании мне это показалось удобным Но в тот момент мне вообще казалось удобным сообщение на каждый чих. Сделаю настройку или уберу вообще.
Max Rusov wrote:2. Часть макросов отказывается редактировать. Зависимость не понял.


Upd. Возможно, это из за того, что область задается через переменную:

Code: Select all

Macro { description="Use Alt-digit to switch between screens";
  area=allScreens; key="/^[LR]Alt[0-9]$/"; 
Ага, из-за этого. Я сначала сгоряча хотел искать в файле присвоение значения такой переменной, но потом прикинул, и понял, что нереально. В общем случае нужен полный анализ всего содержимого файла, что черезчур.
Max Rusov wrote:3. При открытии макроса в редакторе он открывается в модальном режиме. При этом не работают все макросы редактора, т.е. пользоваться этим невозможно. Возможно, лучше открывать в немодальном режиме.
Если открывать в немодальном, то получается ерунда: при любом переключении на друой экран появляется меню макроса, а вернуться обратно в редактор нельзя, пока меню не закроется. Кстати, макросы работают. Не работают почему-то только макролибовские. Но если вызывать их из меню плагина - тоже работают.
John Doe wrote:На какую ширину экрана рассчитано меню?
Автоматом, по самой длинной строке. Это сам LuaFar делает.
John Doe wrote:У меня есть длинные перечисления макрообластей, и длинные перечисления клавиш, возможно поэтому расползается.
Обрезать бы
Подумаю, как лучше. Раньше режима F3 не было, вот и выводил основную информацию полностью.
Max Rusov wrote:Можно области отображать компактно, а из кнопок - только первую. Пример, как сделано в MacroLib:
Возможно, так и сделаю. Хотя 1 буквы для области, возможно, маловато. 2 попробовать, что ли?

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 08:43

IgorZ wrote:Я сначала сгоряча хотел искать в файле присвоение значения такой переменной, но потом прикинул, и понял, что нереально. В общем случае нужен полный анализ всего содержимого файла, что черезчур.
Если был бы доступ к среде макрофайла, то можно было бы получить значение переменной просто по имени.
Может там всё просто, попробуйте getfenv применить к action

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 09:20

Так не выйдет, в среду не попадают локальные переменные...

Тем не менее попутно хотелка: просмотр среды action/condition.
Полезно для выявления необъявленных переменных.

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

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ » Thu 25 Apr, 2013 10:04

Версия 1.0.1 - мелкие правки: убрал сообщение об отказе от редактирования, сделал компактный вывод областей макросов. Пока в функции ShortArea оставил все три возможных варианта: по 2 буквы и 2 варианта по 1-й (2 закомментированы), на пробу. Позже оставлю 1 лучший (высказывания по поводу приветствуются)

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

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ » Thu 25 Apr, 2013 10:05

John Doe wrote:Так не выйдет, в среду не попадают локальные переменные...

Тем не менее попутно хотелка: просмотр среды action/condition.
Полезно для выявления необъявленных переменных.
Не совсем понял про хотелку. Какая среда имеется в виду?

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 10:17

Environment
http://www.lua.org/pil/14.3.html
http://lua-users.org/wiki/EnvironmentTables

Надо: getfenv(m.action)
Получим таблицу, которую например удобно просмотреть с помощью lua explorer

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 10:32

IgorZ wrote:Версия 1.0.1 - мелкие правки:
Обрежьте пожалуйста область клавиш, у меня есть и такое /^[RL]Alt(BS|Multiply|Add|Subtract|Multyply|Divide|BackSlash|.)$/
Соответственно занимает весь экран

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Thu 25 Apr, 2013 10:38

И ещё один момент: последний столбец имеет смысл добивать пробелами, тогда получится хоть нормальный скроллинг (Alt-стрелки)

User avatar
HaRT
Moderator
Posts: 7980
Joined: Tue 30 Aug, 2005 17:21
Location: Санкт-Петербург
Has thanked: 66 times
Been thanked: 97 times

Re: Менеджер Lua-скриптов для Fara

Post by HaRT » Thu 25 Apr, 2013 12:22

Фар есть инструмент, а не нянька. © 2009 DrKnS

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

Re: Менеджер Lua-скриптов для Fara

Post by IgorZ » Mon 29 Apr, 2013 09:08

Версия 1.0.2 - Настройка максимальной ширины для клавиш и описаний (скроллинг при большой ширине также поправлен); показ файловых масок для обработчиков событий, окружения для condition/action.

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

Re: Менеджер Lua-скриптов для Fara

Post by John Doe » Mon 29 Apr, 2013 10:40

Спасибо, теперь можно комфортно пользоваться с моей шириной экрана.

Нашёл какой-то баг.
Есть макрос, Macro { description=".. as destination [toggle ..\\..]";
При просмотре по F3 вижу

Code: Select all

...
Condition:   <Absent or failed to find>
Code:        <Absent or failed to find>
Если изменить description например на "TEST", то проблема пропадает.

P.S.
Ещё. Если закомментировать description, то при запуске LuaManager получим ошибку.

Post Reply

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

Who is online

Users browsing this forum: No registered users and 4 guests