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

Здесь выкладываются готовые к использованию макросы и скрипты.
Post Reply
IgorZ
Posts: 790
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 517 times
Last edited by IgorZ on Wed 25 Oct, 2023 10:02, edited 24 times in total.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Latest post of the previous page:

2useven10 wrote:win.Uuid(Guid) делает из одной строки другую (шестнадцатибайтовую).
так что формально в документации всё корректно.
Но на практике я долго пытался понять, почему GUID не берётся, пока не решил попробовать преобразовать. Всё же это 2 разных формата, а под строкой обычно понимается последовательность символов в кавычках. Как мне кажется, небольшое уточнение в документации было бы очень полезно. Скажем, вместо
Id: string (GUID)
написать
Id: GUID
User avatar
Aidar
Posts: 541
Joined: Mon 09 Mar, 2009 22:43
Location: Kazan
Has thanked: 8 times
Been thanked: 7 times
Contact:

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

Post by Aidar »

IgorZ wrote:...Скажем, вместо
Id: string (GUID)
написать
Id: GUID
В Lua нет типа GUID. Но можно написать так:

Code: Select all

Id:           string  (binUUID)
, см. в справке LuaFAR (раздел win.Uuid).
Shmuel
Posts: 6834
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

IgorZ wrote:Но на практике я долго пытался понять, почему GUID не берётся, пока не решил попробовать преобразовать. Всё же это 2 разных формата
LuaFAR - это тонкая оболочка над API плагинов. В отличие от макросов, в API плагинов везде применяется бинарный гуид, а не его текстовое представление. Поэтому я и не посчитал нужным растолковывать это в мануале.
User avatar
SUSim
Posts: 1637
Joined: Thu 18 Feb, 2010 17:32
Has thanked: 9 times
Been thanked: 26 times

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

Post by SUSim »

Aidar wrote:В Lua нет типа GUID. Но можно написать так:

Code: Select all

Id:           string  (binUUID)
, см. в справке LuaFAR (раздел win.Uuid).
почему bin?
лучше уж так:

Code: Select all

Id:           UUID as string (hex)
или

Code: Select all

Id:           UUID as string in hexadecimal representatio 
SimSU ··· ·· -- ··· ··-
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Shmuel wrote:
IgorZ wrote:Но на практике я долго пытался понять, почему GUID не берётся, пока не решил попробовать преобразовать. Всё же это 2 разных формата
LuaFAR - это тонкая оболочка над API плагинов. В отличие от макросов, в API плагинов везде применяется бинарный гуид, а не его текстовое представление. Поэтому я и не посчитал нужным растолковывать это в мануале.
И в этой тонкой оболочке могут скрываться разные тонкие нюансы. К примеру, её автор мог счесть красивым и удобным привести все нечисловые и нетабличные параметры единообразно к строковому типу. Во всяком случае, именно так я понял описание параметра Id. В общем, правило не полагаться на умолчания возникло не на пустом месте.
Но, наверное, довольно об этом, а то так и до срача недолго. Лучше бы побольше замечаний и багрепортов. Один сам запощу, чтобы остальные на это не отвлекались. Если action или condition определены в виде функции, тело которой определено в другом файле, получаем ошибку (или того хуже - вплоть до портим текст макроса). Будет исправлено в следующей версии.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 1.3.0 - Переписан алгоритм работы с condition/action. Исправлено множество ошибок. Улучшен поиск Macro/Event. Переключение языка в соответствии с настройками Farа при каждом запуске. Коррекция главного меню. Различные мелкие правки.
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

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

Post by Smitis »

Shmuel wrote:В отличие от макросов, в API плагинов везде применяется бинарный гуид, а не его текстовое представление.
Бинарное представление это строка длиной 16 байт, а символьное - 36. Может имеет смысл где-то в недрах LuaFAR сделать проверку длины и автоматически преобразовывать к нужному виду?
Разум когда-нибудь победит.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 1.3.1 - Сортировка, новый макрос, вставляющий скрипт в редактируемый .lua файл по CtrlF11, мелкие исправления. Экспериментально: отсев скриптов, которые нельзя выполнить в данном контексте, с помощью атрибута grayed. Если народ будет против - уберу.

Народ, а что, ошибок вообще не нашёл никто? Да и насчёт идей для развития тоже бы неплохо. Мои запасы исчерпаны, в данной теме тоже, вроде, больше ничего нет.
Smitis wrote:
Shmuel wrote:В отличие от макросов, в API плагинов везде применяется бинарный гуид, а не его текстовое представление.
Бинарное представление это строка длиной 16 байт, а символьное - 36. Может имеет смысл где-то в недрах LuaFAR сделать проверку длины и автоматически преобразовывать к нужному виду?
На мой взгляд, совсем уж лениво. :)
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Исправление по горячим следам. Касается только внешнего вида.
Версия 1.3.2 - Исправление главного меню, когда описания выводятся некорректно, урезан нижний заголовок, чуть поправлены языковые файлы.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Версия 1.3.3 - Убрано ограничение на максимальную длину полей в 99 символов (увы, пришлось сначала обрезать, а уже потом обрезки скармливать format-у - некрасиво), мелкие правки.
tay7er
Posts: 1
Joined: Mon 09 Dec, 2013 14:28

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

Post by tay7er »

В версии 1.3.3
строка 1249

Code: Select all

if item.FileName then
выдает ошибку

Code: Select all

LuaMacro

...r3\Profile\Macros\scripts\LuaManager1.3.3\LuaManager.lua:1249: attempt to index global 'item' (a nil value)
stack traceback:
   ...r3\Profile\Macros\scripts\LuaManager1.3.3\LuaManager.lua: in function <...r3\Profile\Macros\scripts\LuaManager1.3.3\LuaManager.lua:1083>

OK
Видимо, должно быть:

Code: Select all

if items[menupos].FileName then
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

tay7er wrote:В версии 1.3.3
строка 1249

Code: Select all

if item.FileName then
выдает ошибку
...
Видимо, должно быть:

Code: Select all

if items[menupos].FileName then
Совершенно верно. Забыл выложить иcправленную версию. Каюсь и исправляюсь.

Версия 1.3.4 - Мелкие правки.
User avatar
John Doe
Бюрократ
Posts: 13850
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

Code: Select all

--
-- Менеджер Lua-скриптов для Fara (c) IgorZ
--  Клавиша вызова AltCtrlF11
А на самом деле:

Code: Select all

Macro { description=L.MacroDesc; area="Common";  key="AltShiftF11"; action=ManageMacrosEvents; }
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

John Doe wrote:

Code: Select all

--
-- Менеджер Lua-скриптов для Fara (c) IgorZ
--  Клавиша вызова AltCtrlF11
А на самом деле:

Code: Select all

Macro { description=L.MacroDesc; area="Common";  key="AltShiftF11"; action=ManageMacrosEvents; }
:facepalm: Даже не знаю, как ухитрился так описаться. Что самое занятное - посмотрел, оно всегда так было. Почему только сейчас замечено - непонятно. Поправил, перезалил. Версию менять не стал.
User avatar
Wave
Posts: 1885
Joined: Thu 04 Aug, 2005 18:47
Has thanked: 14 times
Been thanked: 26 times

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

Post by Wave »

А... Мнэ... В архиве должен быть только один файл LuaManager.lua?

Code: Select all

 ╔═════════════════════════════════════════════ LuaMacro ══════════════════════════════════════════════╗
 ║ cannot open D:\TOOLS\Shells\FAR\Profile\Macros\scripts\LuaManagerRus.lng: No such file or directory ║
 ╟─────────────────────────────────────────────────────────────────────────────────────────────────────╢
 ║                                               { OK }                                                ║
 ╚═════════════════════════════════════════════════════════════════════════════════════════════════════╝
Пользуюсь ФАРом больше 20 лет © собирательный.
IgorZ
Posts: 790
Joined: Wed 13 Jul, 2011 03:32
Has thanked: 15 times
Been thanked: 93 times

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

Post by IgorZ »

Wave wrote:А... Мнэ... В архиве должен быть только один файл LuaManager.lua?
Да что за день такой?!! Нет, конечно. Перезалил полный архив.
Post Reply

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