Page 7 of 11

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Wed 30 Jan, 2013 14:18
by Shmuel

Latest post of the previous page:

Это неудивительно. Макросы используют одну виртуальную машину (LuaMacro), а скрипт - другую (Macro2Lua).

Кроме временных файлов, можно использовать переменные окружения. Ну, и Plugin.Call, естественно (если бы был реализован).

P.S. Непонятно, зачем вам в этой истории макросы. Делайте всё в скрипте.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Wed 30 Jan, 2013 16:11
by Shmuel
На плагринге - Macro2Lua 0.5 с поддержкой Plugin.Call.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Wed 30 Jan, 2013 16:21
by John Doe
Спасибо!

Нужен был способ вызывать конвертер из редактора, для конвертации блока.
Max Rusov в принципе решил этот вопрос через временный файл.
Я же хотел уточнить, нет ли более прямого способа.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Thu 31 Jan, 2013 22:25
by John Doe
Неожиданный эффект при попытке конвертировать Editor.SelValue.
Вот например что получается, если выделить строку (целиком), содержащую $if(1) $end
Editor.SelValue при этом захватывает конец строки:

Code: Select all

$if(1) $end♪◙
И результат конвертации такой:

Code: Select all

if 1 then  endKeys("♪") 

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Thu 31 Jan, 2013 23:07
by Shmuel
John Doe wrote:Неожиданный эффект при попытке конвертировать Editor.SelValue.
Исправлено в версии 0.6.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 01:21
by John Doe
Спасибо, теперь всё отлично.

Когда-то в теме упоминалось, что конвертер учитывает "комментарии".
Пробовал ;; // %Comment="..." - ничего не помогло.

Возможно это не работает именно в синтаксисе chunk?

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 07:50
by Shmuel
John Doe wrote:Когда-то в теме упоминалось, что конвертер учитывает "комментарии".
Пробовал ;; // %Comment="..." - ничего не помогло.

Возможно это не работает именно в синтаксисе chunk?
Надо было попробовать %Comment="мой классный макрос"; :)
Поскольку макроязык не поддерживал комментарии, люди вводили переменные %comment, %rem и т.п. и в них помещали комментарии. Конвертер обрабатывает несколько вариантов написания %comment, вот это имелось в виду. В том числе, и в синтаксисе "chunk".

Также обрабатываются настоящие комментарии в FML-файлах.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 10:44
by John Doe
Shmuel wrote:Надо было попробовать %Comment="мой классный макрос"; :)
Вот что на выходе: Comment="мой классный макрос";

P.S.
Мои комментарии - однострочные, помечены ;;, как в MacroLib.
Я бы их переделал в %Comment, но и это не работает.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 11:06
by Shmuel
John Doe wrote:Вот что на выходе: Comment="мой классный макрос";
Не могу воспроизвести.
Вот файл 1.macro со следующим содержимым:

Code: Select all

%Comment="мой классный макрос";
Вот команда:

Code: Select all

m2l:convert 1.macro 1.lua chunk
Вот содержимое 1.lua:

Code: Select all

-- мой классный макрос

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 11:12
by John Doe
str_out, str_message = Plugin.Call(guid, "chunk", Editor.SelValue)

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Sat 02 Feb, 2013 11:43
by Shmuel
Поправил в версии 0.7.
Дальнейшие репорты по конвертеру принимаются, но оперативно чиниться не будут.

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Fri 15 Feb, 2013 12:59
by xarx
Macro2Lua незнает функцию panelitem (я исползуюсь panelitem(0,i,8)). Какой ее lua эквивалент?

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Fri 15 Feb, 2013 13:04
by John Doe
Луа не при чём, со времён Far 2 функция называется Panel.Item
http://api.farmanager.com/ru/macro/macr ... index.html

А вообще рекомендую macroapi_manual.chm (в поставке)

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Fri 15 Feb, 2013 13:21
by xarx
Спасибо, но это документация для макроязыка для FAR2. LUA FAR3 API то же самое?
Panelitem какая то устаревшая функциа. Но макросы, каторые ее исползуют, постоянно работают (но Macro2Lua ее незнает). Имеют аргументы Panel.Item те же значения?

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Fri 15 Feb, 2013 13:25
by John Doe
Кто его знает...
Может в доку заглянуть стоит?

Re: Spring — внедрение Lua в качестве макроязыка

Posted: Fri 15 Feb, 2013 13:42
by xarx
Если это был ответ на мой первий вопрос, то это грустно, что здес нет никакой документации для LUA FAR3 API. :-(