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

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

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

Post by fps »

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

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

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. {
  4.  
  5.  group="DialogEvent"; description="LUA error - edit source"; condition=function(event,param)
  6.  
  7.   return event==far.Flags.DE_DEFDLGPROCINIT
  8.  
  9.          and param.Msg==far.Flags.DN_DRAWDIALOGDONE
  10.  
  11.          and Dlg.Id=="4EBBEFC8-2084-4B7F-94C0-692CE136894D"
  12.  
  13.  end;                                
  14.  
  15.  
  16.  
  17.  action=function()
  18.  
  19.   local errFile,errLine,e=Dlg.GetValue(2):match([[^\\.\(.+%.lua):(%d+):(.+)]]);
  20.  
  21.   if errFile and errLine and mf.fexist(errFile) then
  22.  
  23.    far.Message(errFile..":"..errLine)
  24.  
  25.   end
  26.  
  27.  end
  28.  
  29. }
он успешно получает имя файла и строку.
А как теперь кнопку в диалог добавить, чтобы она открывала этот файл в редакторе?
Или это по-другому как-то надо делать?
Shmuel
Posts: 6840
Joined: Thu 23 Mar, 2006 21:36
Location: Israel
Has thanked: 41 times
Been thanked: 530 times

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

Post by Shmuel »

fps wrote:Например, добавить в стандартный диалог ошибки [...]
кнопку { Edit } [...]
Как это прямее всего сделать?
Прямее всего это сделать в самом плагине LuaMacro. Есть и тикет на мантисе. Сегодня-завтра посмотрю.
User avatar
John Doe
Бюрократ
Posts: 13862
Joined: Wed 27 Apr, 2005 20:42
Has thanked: 74 times
Been thanked: 428 times
Contact:

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

Post by John Doe »

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

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

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