Page 22 of 36

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

Posted: Mon 16 Jul, 2012 13:44
by John Doe
Проект Spring (обсуждение) влился в стабильную версию Far Manager 3.0.

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

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

Posted: Tue 13 May, 2014 09:37
by John Doe

Latest post of the previous page:

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

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

Posted: Tue 13 May, 2014 09:39
by Shmuel
Решить можно практически всё. Но на всё нужно время.

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

Posted: Tue 13 May, 2014 09:50
by John Doe
А асинхронный вызов тоже опасен (если плагин открывает панель не сразу, а в ответ на какие-то действия пользователя)?

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

Posted: Tue 13 May, 2014 09:53
by Shmuel
Асинхронный не опасен.

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

Posted: Tue 13 May, 2014 09:57
by John Doe
У плагина сейчас есть возможность узнать был ли он вызван синхронно или нет?
Может ли он сам управлять "синхронностью"?

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

Posted: Tue 13 May, 2014 11:10
by Shmuel
Нет.
Нет.

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

Posted: Tue 13 May, 2014 11:14
by John Doe
Должно быть несложно передавать плагину хотя бы информацию о том, что использовалось для запуска (Call/SyncCall).
И насколько я понял из мануала, если плагин запущен с помощью Call, и отобразил диалог, то вызов гарантированно получится асинхронным.

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

Posted: Tue 13 May, 2014 14:48
by Shmuel
John Doe wrote:И насколько я понял из мануала, если плагин запущен с помощью Call, и отобразил диалог, то вызов гарантированно получится асинхронным.
Да.

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

Posted: Mon 19 May, 2014 13:14
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, проверялось в новом профиле.

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

Posted: Mon 19 May, 2014 13:36
by Shmuel
Это привет от M#2388.

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

Posted: Mon 19 May, 2014 14:08
by John Doe
loadfile и pcall необучены возвращать валидный utf8...

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

Posted: Mon 19 May, 2014 14:11
by Shmuel
Переоткройте указанный тикет и поместите там эту проблему.

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

Posted: Mon 19 May, 2014 14:13
by John Doe
Сделаю.
Но не уверен что исправлять надо в ErrMsg

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

Posted: Mon 19 May, 2014 14:16
by Shmuel
Я тоже на данный момент ни в чём не уверен. Для того и мантис, чтобы выбрать удобный момент.

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

Posted: Thu 29 May, 2014 18:08
by John Doe
Назначаю ассоциацию lua:@"!\!.!" на маску *.lua.
Пакую в архив lua-файл (можно пустой).
Захожу в архив, жму Enter на lua-файле.

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

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

Posted: Thu 29 May, 2014 19:19
by Shmuel
Большое спасибо за репорт! Исправлено.

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

Posted: Tue 03 Jun, 2014 12:08
by Amouse
Подскажите, мне нужен плагин, только чтобы редактировать в Фаре код на луа, без переделки самого Фара. Такой есть?