Перенос макросов из прошлых версий фара в LuaMacro

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Latest post of the previous page:

Shmuel wrote:
John Doe wrote:
Shmuel wrote:Plugin.Call как раз добавить не проблема.
Было бы неплохо.
А зачем? Кому это надо? Даже если это займёт час работы, и то неохота делать просто "чтобы было".
Надо мне. Потому что сейчас извращаюсь с выходом в панели.
Но час это много.

Примечание модератора: часть сообщений отделена.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Shmuel wrote:
John Doe wrote:
Shmuel wrote:Даже если это займёт час работы, и то неохота делать просто "чтобы было".
Надо мне. Потому что сейчас извращаюсь с выходом в панели.
Но час это много.
Зачем вам это?
Перевожу макросы потихоньку.
Для большей осмысленности хотелось бы вызывать конвертацию из редактора (выделенный блок).
Без этого сложно определить, в каких местах конвертер отказывается работать.
Но часа вашей работы это вероятно не стоит.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:
Shmuel wrote:Даже если это займёт час работы, и то неохота делать просто "чтобы было".
Надо мне. Потому что сейчас извращаюсь с выходом в панели.
Но час это много.
Ну раз это не для баловства, сделаю. И ради интереса время засеку.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Да в общем необходимости нет.
Выйти в панели не проблема, код я уже отладил.
Осталось выяснить как лучше из внешнего скрипта (вызываемого m2l) передать данные обратно в макрос.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

John Doe wrote:Для большей осмысленности хотелось бы вызывать конвертацию из редактора (выделенный блок).
Я что-то такое делал, вроде:
http://forum.farmanager.com/viewtopic.p ... 406#p99406

Оно преобразует не только FML файлы, но произвольный макрокод...
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

John Doe wrote:Осталось выяснить как лучше из внешнего скрипта (вызываемого m2l) передать данные обратно в макрос.
Не выходит даже передать данные из макроса в скрипт.
Пытаюсь через глобальную переменную.
lm:post _G.tmp="tmp" Keys("CtrlG") mf.print("m2l:run script.lua") Keys("Enter")

script.lua:

Code: Select all

far.Show(_G.tmp)
Возможно ли это вообще (кроме как используя временные файлы)?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

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

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

P.S. Непонятно, зачем вам в этой истории макросы. Делайте всё в скрипте.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

На плагринге - Macro2Lua 0.5 с поддержкой Plugin.Call.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Спасибо!

Нужен был способ вызывать конвертер из редактора, для конвертации блока.
Max Rusov в принципе решил этот вопрос через временный файл.
Я же хотел уточнить, нет ли более прямого способа.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

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

Code: Select all

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

Code: Select all

if 1 then  endKeys("♪") 
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

John Doe wrote:Неожиданный эффект при попытке конвертировать Editor.SelValue.
Исправлено в версии 0.6.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Спасибо, теперь всё отлично.

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

Возможно это не работает именно в синтаксисе chunk?
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

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

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

Также обрабатываются настоящие комментарии в FML-файлах.
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

Shmuel wrote:Надо было попробовать %Comment="мой классный макрос"; :)
Вот что на выходе: Comment="мой классный макрос";

P.S.
Мои комментарии - однострочные, помечены ;;, как в MacroLib.
Я бы их переделал в %Comment, но и это не работает.
Shmuel
Posts: 6819
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post 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

-- мой классный макрос
User avatar
John Doe
Бюрократ
Posts: 13807
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 73 times
Been thanked: 426 times
Contact:

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

Post by John Doe »

str_out, str_message = Plugin.Call(guid, "chunk", Editor.SelValue)
Post Reply

Return to “Нужна помощь”