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

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

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

Post by John Doe » Mon 16 Jul, 2012 13:44

Проект 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: 12526
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 33 times
Been thanked: 229 times

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

Post by John Doe » Tue 13 May, 2014 09:37

Latest post of the previous page:

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Tue 13 May, 2014 09:39

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

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

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

Post by John Doe » Tue 13 May, 2014 09:50

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Tue 13 May, 2014 09:53

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

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

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

Post by John Doe » Tue 13 May, 2014 09:57

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Tue 13 May, 2014 11:10

Нет.
Нет.

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

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

Post by John Doe » Tue 13 May, 2014 11:14

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Tue 13 May, 2014 14:48

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

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

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

Post by John Doe » Mon 19 May, 2014 13:14

При определённых обстоятельствах 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: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Mon 19 May, 2014 13:36

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

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

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

Post by John Doe » Mon 19 May, 2014 14:08

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Mon 19 May, 2014 14:11

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

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

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

Post by John Doe » Mon 19 May, 2014 14:13

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Mon 19 May, 2014 14:16

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

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

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

Post by John Doe » Thu 29 May, 2014 18:08

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

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

Shmuel
Posts: 5916
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 23 times
Been thanked: 228 times

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

Post by Shmuel » Thu 29 May, 2014 19:19

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

Amouse
Posts: 7
Joined: Tue 03 Jun, 2014 12:06

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

Post by Amouse » Tue 03 Jun, 2014 12:08

Подскажите, мне нужен плагин, только чтобы редактировать в Фаре код на луа, без переделки самого Фара. Такой есть?

Post Reply

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