LuaMacro — Lua как язык макросов

Здесь обсуждается всё, что касается макросов.
User avatar
John Doe
Бюрократ
Posts: 12715
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 36 times
Been thanked: 278 times

LuaMacro — Lua как язык макросов

Post by John Doe »

Проект Spring (обсуждение) влился в стабильную версию Far Manager 3.0.

Таким образом, в макросах сейчас доступны:
  • Стандартные функции и библиотеки Lua.
  • В фаре используется LuaJIT (обсуждение), что (в частности) даёт доступ к библиотеке FFI (обсуждение).
  • "Надстройка" над Lua: MoonScript (Подробности и обсуждение)
  • Функции API плагинов, посредством библиотеки LuaFAR (см. luafar_manual.chm)
  • Функции старого макроязыка (API макросов) (Обновление)
    Актуальный мануал, отражающий после перехода на Lua: macroapi_manual.ru.chm.
    (Мануал весьма лаконичен, вместо описания функции старого макроязыка приведены ссылки на устаревший раздел )
См. также:

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Latest post of the previous page:

Shmuel wrote:RESearch или FTP не должны этого делать
Т.е. никак нельзя это решить? Кроме как вызывать плагины через Keys"F11 ..."?

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Решить можно практически всё. Но на всё нужно время.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

А асинхронный вызов тоже опасен (если плагин открывает панель не сразу, а в ответ на какие-то действия пользователя)?

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Асинхронный не опасен.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

У плагина сейчас есть возможность узнать был ли он вызван синхронно или нет?
Может ли он сам управлять "синхронностью"?

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Нет.
Нет.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Должно быть несложно передавать плагину хотя бы информацию о том, что использовалось для запуска (Call/SyncCall).
И насколько я понял из мануала, если плагин запущен с помощью Call, и отобразил диалог, то вызов гарантированно получится асинхронным.

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

John Doe wrote:И насколько я понял из мануала, если плагин запущен с помощью Call, и отобразил диалог, то вызов гарантированно получится асинхронным.
Да.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

При определённых обстоятельствах LuaMacro в сообщениях об ошибках выводит путь к макрофайлу в неправильной кодировке.

Создать папку "Йцукен_Фывапр" в scripts (или в любой её подпапке).
Создать файл "12345_123456_12345678901234.lua" с текстом "xxx" (содержимое не имеет значения, но должна присутствовать ошибка)
Перезагрузить макросы командой lm:load

Наблюдаем сообщение об ошибке, причём путь почему-то в неверной кодировке:

Code: Select all

╔═════════════════════════════════════ LuaMacro ══════════════════════════════════════╗
║ ...™С†СѓРєРµРЅ_Фывапр\12345_123456_12345678901234.lua:2: '=' expected near '< ║
║ eof>'                                                                               ║
╟─────────────────────────────────────────────────────────────────────────────────────╢
║                                       { OK }                                        ║
╚═════════════════════════════════════════════════════════════════════════════════════╝
Видно, что путь усекается (троеточие), возможно причина сбоя в том, что UTF-8 усекается побайтно, а не посимвольно.

Windows XP, Far 3.0 build 3909 x86, проверялось в новом профиле.

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Это привет от M#2388.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

loadfile и pcall необучены возвращать валидный utf8...

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Переоткройте указанный тикет и поместите там эту проблему.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Сделаю.
Но не уверен что исправлять надо в ErrMsg

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Я тоже на данный момент ни в чём не уверен. Для того и мантис, чтобы выбрать удобный момент.

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

Re: LuaMacro — Lua как язык макросов

Post by John Doe »

Назначаю ассоциацию lua:@"!\!.!" на маску *.lua.
Пакую в архив lua-файл (можно пустой).
Захожу в архив, жму Enter на lua-файле.

Мелькает сообщение о какой-то ошибке, и фар вылетает без создания траплога.
Воспроизводится с чистым профилем и штатным набором плагинов.

Shmuel
Posts: 6059
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 30 times
Been thanked: 298 times

Re: LuaMacro — Lua как язык макросов

Post by Shmuel »

Большое спасибо за репорт! Исправлено.

Post Reply

Return to “Обсуждение макросов”