"Ограничения в использовании некоторых функций"

Здесь обсуждается всё, что касается макросов.
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

"Ограничения в использовании некоторых функций"

Post by tstr »

не совсем понял из раздела документации "Ограничения в использовании некоторых функций" - Keys в condition макроса можно использовать?
юзкейс -если гуид анси плагина пытаться получить через вызов меню плагинов - получаю

до этого, правда, в виде двух макросов - в автостартующем через Keys получал GUID, а затем в макросах его использовал - работало.
потом захотелось оптимизировать...
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Дайте пример кода вызывающего ошибку.

P.S.
Что касается вашей задачи, то Keys тут не обязателен, вот пример кода: http://forum.farmanager.com/viewtopic.p ... 66#p104766

Code: Select all

lm:post print(Plugin.idByName("FarFtp.dll"))
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

Plugin.BackgroundCopy.lua (зависимость от констант убрал) :
User avatar
Smitis
Posts: 1709
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 23 times
Been thanked: 55 times

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

Post by Smitis »

tstr
Удалось запустить BackgroundCopy под FAR3? Поделись, как. У меня под враппером только пустые папки создаёт.
Разум когда-нибудь победит.
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

это анси версия (под FAR 1.x)
tstr
Posts: 557
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 20 times
Been thanked: 9 times

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

Post by tstr »

John Doe wrote:Что касается вашей задачи, то Keys тут не обязателен, вот пример кода
спасибо, буду использовать. так конечно красивее.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

tstr wrote:не совсем понял из раздела документации "Ограничения в использовании некоторых функций" - Keys в condition макроса можно использовать?
Единственная документация по condition - это (пока что) changelog.
Я не вижу там ничего об ограничениях, но использование Keys (и других перечисленных в "Ограничениях" функций) действительно вызывает ошибку
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

Добавил пункт о condition в статью об "ограниченных" функциях.
Дело в том, что эти функции предполагают исполнение из макроса, а макрос ещё не запущен. Может быть со временем как-нибудь уберём эти ограничения, хотя бы некоторые.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Хочется обратить внимание, что аналогичное ограничение существует также и за пределами Macro {...}.

Актуально для той части скрипта, которая отрабатывает в момент начальной загрузки макросов.
Это одна из причин, почему пока нельзя отказаться от автостартующих макросов (RunAfterFARStart)
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

John Doe wrote:Это одна из причин, почему пока нельзя отказаться от автостартующих макросов (RunAfterFARStart)
Вместо RunAfterFARStart можно пользоваться far.MacroPost - не очень удобно, но работу делает.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Может стоит добавить это в статью об ограничениях?

P.S.
Есть и другая причина использования RunAfterFARStart: я не хочу выполнять некоторые действия при каждой перезагрузке макросов.
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Code: Select all

function test()
  far.RecursiveSearch (".","*",print)
end
test()
Почему-то так нельзя:

Code: Select all

╔══════════════════════ Error ═══════════════════════╗
║    C:\apps\far3\Plugins\LuaMacro\LuaMacro.dll:     ║
║ attempt to yield across metamethod/C-call boundary ║
╟────────────────────────────────────────────────────╢
║                       { OK }                       ║
╚════════════════════════════════════════════════════╝
Shmuel
Posts: 6815
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 526 times

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

Post by Shmuel »

Вот вас почему-то не удивляет что ни одна из функций, обозначенных в мануале макроапи как "ограниченные" недоступна из плагинов?
User avatar
John Doe
Бюрократ
Posts: 13801
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 72 times
Been thanked: 425 times
Contact:

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

Post by John Doe »

Меня пока ничего не удивляет )

Интересно, а могла бы быть в фаре польза от стандартной Lua-функции print.
Max Rusov
Posts: 3651
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 2 times
Been thanked: 19 times

Ограничения в использовании некоторых функций

Post by Max Rusov »

Ошибка при вызове Plugin.Call из Event'а

По мотивам http://forum.farmanager.com/viewtopic.p ... 60#p109460 хотел сделать макрос-хелпер.



Вызов вручную работает нормально. Но если раскомментировать вызов HighlightSymbols с событии, то при открытии редактора получаю ошибку:



В чем может быть дело?
Post Reply

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