Диалог ошибки макроса. Как добавить кнопку {Edit} ?

Столкнулись с проблемой в использовании макросов? Здесь можно получить помощь.
Post Reply
fps
Posts: 205
Joined: Wed 20 Apr, 2005 06:39
Has thanked: 15 times
Been thanked: 4 times

Диалог ошибки макроса. Как добавить кнопку {Edit} ?

Post by fps » Mon 30 Jun, 2014 06:08

Хочется иметь возможность быстро открыть в редакторе файл скрипта, в котором произошла ошибка.

Например, добавить в стандартный диалог ошибки

Code: Select all

╔═════════════════════════ LuaMacro ══════════════════════════╗
║ \\?\c:\BookmarkManager.lua:43: attempt to index a nil value ║
║ stack traceback:                                            ║
║    \\?\c:\BookmarkManager.lua: in main chunk                ║
╟─────────────────────────────────────────────────────────────╢
║                           { OK }                            ║
╚═════════════════════════════════════════════════════════════╝
кнопку { Edit }, котороая откроет в данном случае файл c:\BookmarkManager.lua на строке 43.

Как это прямее всего сделать?

Вот, сделал такой макрос:
  1. Event
  2. {
  3.  group="DialogEvent"; description="LUA error - edit source"; condition=function(event,param)
  4.   return event==far.Flags.DE_DEFDLGPROCINIT
  5.          and param.Msg==far.Flags.DN_DRAWDIALOGDONE
  6.          and Dlg.Id=="4EBBEFC8-2084-4B7F-94C0-692CE136894D"
  7.  end;                                
  8.  
  9.  action=function()
  10.   local errFile,errLine,e=Dlg.GetValue(2):match([[^\\.\(.+%.lua):(%d+):(.+)]]);
  11.   if errFile and errLine and mf.fexist(errFile) then
  12.    far.Message(errFile..":"..errLine)
  13.   end
  14.  end
  15. }
он успешно получает имя файла и строку.
А как теперь кнопку в диалог добавить, чтобы она открывала этот файл в редакторе?
Или это по-другому как-то надо делать?

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

Re: Диалог ошибки макроса. Как добавить кнопку {Edit} ?

Post by Shmuel » Mon 30 Jun, 2014 06:33

fps wrote:Например, добавить в стандартный диалог ошибки [...]
кнопку { Edit } [...]
Как это прямее всего сделать?
Прямее всего это сделать в самом плагине LuaMacro. Есть и тикет на мантисе. Сегодня-завтра посмотрю.

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

Re: Диалог ошибки макроса. Как добавить кнопку {Edit} ?

Post by John Doe » Mon 30 Jun, 2014 15:57

Тикет тут: http://bugs.farmanager.com/view.php?id=2387

Чего ещё хочется, это чтобы на время вывода сообщения все скрипты прекращали работу, как это происходит при запросе привилегий администратора.
Возможно ли это в принципе?

Post Reply

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