MenuItem и print?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

MenuItem и print?

Post by Maximus5 » Mon 22 Sep, 2014 12:52

Из "MenuItem" не работает "mf.print"? mf.msgbox - работает.
Хочется вставить в редактор или поле ввода диалога некий текст.

Пример скрипта MenuItem

Code: Select all

MenuItem {
  area="Editor Dialog";
  menu="Plugins";
  guid="7C9CCEB0-9D34-47DA-998F-17BD0480A422";
  text=function(menu,area) return "Paste text" end;
action=function(OpenFrom,Item)
  mf.print("abcd")
  -- mf.msgbox("abc","def")
end;
}
Ошибка: attempt to yield across C-call boundary

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

Re: MenuItem и print?

Post by Shmuel » Mon 22 Sep, 2014 13:02

Это нормальное поведение. Мы в плагине, а не в макросе.
Вариантов действия два: либо пользоваться плагиновым API (см. luafar_manual.chm), либо - вызвать макрос, например:
mf.postmacro(mf.print, "abcd")
Второй вариант может не подойти, зависит от обстоятельств.

Maximus5
Posts: 3292
Joined: Sun 11 Nov, 2007 02:03
Been thanked: 4 times
Contact:

Re: MenuItem и print?

Post by Maximus5 » Mon 22 Sep, 2014 13:13

Спасибо

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

Re: MenuItem и print?

Post by Shmuel » Mon 22 Sep, 2014 14:28

Дополню, что print относится к т.н. "ограниченным" функциям, которые могут работать только из исполняющегося макроса. Эти ф-ции перечислены в macroapi_manual.ru.chm. Ф-ция msgbox к ограниченным не относится.

Post Reply

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