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

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

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

Post by tstr » Thu 14 Mar, 2013 09:15

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

до этого, правда, в виде двух макросов - в автостартующем через Keys получал GUID, а затем в макросах его использовал - работало.
потом захотелось оптимизировать...

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

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

Post by John Doe » Thu 14 Mar, 2013 09:25

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

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

Code: Select all

lm:post print(Plugin.idByName("FarFtp.dll"))

tstr
Posts: 524
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 7 times
Been thanked: 6 times

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

Post by tstr » Thu 14 Mar, 2013 09:39

Plugin.BackgroundCopy.lua (зависимость от констант убрал) :

Smitis
Posts: 1574
Joined: Fri 18 Mar, 2005 12:51
Location: Питер
Has thanked: 18 times
Been thanked: 32 times

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

Post by Smitis » Thu 14 Mar, 2013 09:52

tstr
Удалось запустить BackgroundCopy под FAR3? Поделись, как. У меня под враппером только пустые папки создаёт.
Разум когда-нибудь победит.

tstr
Posts: 524
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 7 times
Been thanked: 6 times

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

Post by tstr » Thu 14 Mar, 2013 09:54

это анси версия (под FAR 1.x)

tstr
Posts: 524
Joined: Thu 16 Apr, 2009 16:15
Has thanked: 7 times
Been thanked: 6 times

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

Post by tstr » Thu 14 Mar, 2013 09:56

John Doe wrote:Что касается вашей задачи, то Keys тут не обязателен, вот пример кода
спасибо, буду использовать. так конечно красивее.

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

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

Post by John Doe » Thu 14 Mar, 2013 10:20

tstr wrote:не совсем понял из раздела документации "Ограничения в использовании некоторых функций" - Keys в condition макроса можно использовать?
Единственная документация по condition - это (пока что) changelog.
Я не вижу там ничего об ограничениях, но использование Keys (и других перечисленных в "Ограничениях" функций) действительно вызывает ошибку

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

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

Post by Shmuel » Thu 14 Mar, 2013 11:33

Добавил пункт о condition в статью об "ограниченных" функциях.
Дело в том, что эти функции предполагают исполнение из макроса, а макрос ещё не запущен. Может быть со временем как-нибудь уберём эти ограничения, хотя бы некоторые.

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

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

Post by John Doe » Thu 14 Mar, 2013 12:12

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

Актуально для той части скрипта, которая отрабатывает в момент начальной загрузки макросов.
Это одна из причин, почему пока нельзя отказаться от автостартующих макросов (RunAfterFARStart)

Shmuel
Posts: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

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

Post by Shmuel » Thu 14 Mar, 2013 12:17

John Doe wrote:Это одна из причин, почему пока нельзя отказаться от автостартующих макросов (RunAfterFARStart)
Вместо RunAfterFARStart можно пользоваться far.MacroPost - не очень удобно, но работу делает.

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

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

Post by John Doe » Thu 14 Mar, 2013 12:25

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

P.S.
Есть и другая причина использования RunAfterFARStart: я не хочу выполнять некоторые действия при каждой перезагрузке макросов.

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

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

Post by John Doe » Tue 26 Mar, 2013 01:13

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: 5789
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 22 times
Been thanked: 210 times

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

Post by Shmuel » Tue 26 Mar, 2013 11:00

Вот вас почему-то не удивляет что ни одна из функций, обозначенных в мануале макроапи как "ограниченные" недоступна из плагинов?

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

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

Post by John Doe » Tue 26 Mar, 2013 11:05

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

Интересно, а могла бы быть в фаре польза от стандартной Lua-функции print.

Max Rusov
Posts: 3632
Joined: Wed 23 Nov, 2005 11:11
Location: Москва-Питер
Has thanked: 1 time
Been thanked: 10 times

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

Post by Max Rusov » Wed 08 May, 2013 08:34

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

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



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



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

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

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

Post by John Doe » Wed 08 May, 2013 08:41

Вероятно вот в этом: hh.exe %FARHOME%\Encyclopedia\macroapi_manual.chm::/62.html

Post Reply

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