Расширение макроязыка плагинами

Здесь обсуждается всё, что касается макросов.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Расширение макроязыка плагинами

Post by Max Rusov »

NightRoman wrote:Но идея-то была вроде, что с int плагин больше инфы может в макрос вернуть.
По факту сейчас - не может. А чтобы мог - планировалось RegisterMacroFunc (или как-то так)... Или на это теперь забили?

Примечание модератора: связанная тема http://forum.farmanager.com/viewtopic.php?f=15&t=7805
Shmuel
Posts: 6820
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 528 times

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

Post by Shmuel »

Max Rusov wrote:
NightRoman wrote:Но идея-то была вроде, что с int плагин больше инфы может в макрос вернуть.
По факту сейчас - не может. А чтобы мог - планировалось RegisterMacroFunc (или как-то так)... Или на это теперь забили?
В первую очередь нужно, чтобы заработала вся старая функциональность. А потом можно будет делать разные интересные вещи.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

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

Post by Max Rusov »

Skirda wrote:
Max Rusov wrote:планировалось RegisterMacroFunc (или как-то так)... Или на это теперь забили?
А смысл? Ты в луо-макросе можешь написать func...
Смысл все тот-же - интеграция с скриптов с плагинами, естественно. Или вы рассчитываете, что все плагины будут переписаны на LUA?
User avatar
NightRoman
Posts: 6184
Joined: Fri 18 Aug, 2006 13:52
Location: Cambridge, UK
Has thanked: 32 times
Been thanked: 62 times
Contact:

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

Post by NightRoman »

Skirda wrote:А смысл? Ты в луо-макросе можешь написать func...
И да (часто), и нет (редко, если сложный код или просло легче в плагине реализовать и поддерживать). Но с Луа новый пласт возможностей появляется по идее по поводу вызовов кода из плагинов (и наоборот даже можно, если не ошибаюсь, из плугов вызывать функи из скриптов, в теории, продвинутую кастомизацию можно выносить в скрипты).

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

Расширение макроязыка плагинами

Post by John Doe »

Shmuel wrote:Plugin.Call как раз добавить не проблема.
Было бы неплохо.
Ну а 0000466: Расширение макроязыка плагинами в принципе возможно реализовать?
В смысле сделать доступной в макросах функцию m2l.Convert()
Shmuel
Posts: 6820
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:Ну а 0000466: Расширение макроязыка плагинами в принципе возможно реализовать?
В смысле сделать доступной в макросах функцию m2l.Convert()
Plugin.Call позволяет плагинам добавлять произвольные функции. Тот же синус, например, который всегда фигурирует в дискуссиях на эту тему.
Shmuel
Posts: 6820
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:Plugin.Call позволяет плагинам добавлять произвольные функции. Тот же синус, например, который всегда фигурирует в дискуссиях на эту тему.
Вот и я об этом.
Очень коряво выходит:

Code: Select all

Plugin.Call("887631b9-49cc-415f-be22-d6b07510510d","Sin",3.14)
вместо простого
math.sin(3.14)
В Lua эта корявость легко преодолима: делается модуль, а в нём красивые обёртки для подобных функций.

Code: Select all

function sin(arg)
  return Plugin.Call("887631b9-49cc-415f-be22-d6b07510510d","Sin",arg)
end
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

John Doe wrote:
Shmuel wrote:В Lua эта корявость легко преодолима: делается модуль, а в нём красивые обёртки для подобных функций.
Это безусловно решает проблему (хотя придётся в каждом макросе подключать модуль).
Другие варианты реализации не рассматриваются?
плагин может выполнить макрос:

Code: Select all

_G.sin=function(arg)
  return Plugin.Call("887631b9-49cc-415f-be22-d6b07510510d","Sin",arg)
end
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 »

Собственно такой lua файл можно просто положить к скриптам, и при загрузке макросов код выполнится.
Верно?
Shmuel
Posts: 6820
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:Собственно такой lua файл можно просто положить к скриптам, и при загрузке макросов код выполнится.
Верно?
Верно.
John Doe wrote:Да в общем необходимости нет.
Ну раз не надо, делать не буду.
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 »

zg wrote:плагин может выполнить макрос
Для этого он должен быть preload
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Max Rusov wrote:
zg wrote:плагин может выполнить макрос
Для этого он должен быть preload
и?
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 »

zg wrote:и?
Это не всегда удобно. Предполагалось, что ProcessMacroFunc не требует, чтобы плагин был preload.
User avatar
zg
zero-gravity
Posts: 6016
Joined: Tue 15 Mar, 2005 17:36
Location: riga
Been thanked: 185 times
Contact:

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

Post by zg »

Max Rusov 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 »

Shmuel wrote:
John Doe wrote:
Shmuel wrote:Plugin.Call позволяет плагинам добавлять произвольные функции. Тот же синус, например, который всегда фигурирует в дискуссиях на эту тему.
Вот и я об этом.
Очень коряво выходит:

Code: Select all

Plugin.Call("887631b9-49cc-415f-be22-d6b07510510d","Sin",3.14)
вместо простого
math.sin(3.14)
В Lua эта корявость легко преодолима: делается модуль, а в нём красивые обёртки для подобных функций.

Code: Select all

function sin(arg)
  return Plugin.Call("887631b9-49cc-415f-be22-d6b07510510d","Sin",arg)
end
А ведь dll плагина наверно может непосредственно содержать Lua модуль?
Если действие функции не связано с фаром (как в примере с синусом), то это предпочтительнее, т.к. позволит использовать предоставленные функции без фара, в любом Lua-скрипте.
Post Reply

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