2009-01-07 16:06:43 -05:00
|
|
|
! Copyright (C) 2006, 2009 Slava Pestov.
|
2007-09-20 18:09:08 -04:00
|
|
|
! See http://factorcode.org/license.txt for BSD license.
|
2008-07-10 21:32:17 -04:00
|
|
|
USING: accessors continuations kernel models namespaces
|
2009-01-07 16:06:43 -05:00
|
|
|
prettyprint ui ui.commands ui.gadgets ui.gadgets.labelled assocs
|
|
|
|
ui.gadgets.tracks ui.gadgets.buttons ui.gadgets.panes
|
2009-02-05 05:00:27 -05:00
|
|
|
ui.gadgets.status-bar ui.gadgets.scrollers
|
|
|
|
ui.gestures sequences inspector models.filter ;
|
|
|
|
QUALIFIED-WITH: ui.tools.inspector i
|
2007-09-20 18:09:08 -04:00
|
|
|
IN: ui.tools.traceback
|
|
|
|
|
2007-11-16 01:19:13 -05:00
|
|
|
: <callstack-display> ( model -- gadget )
|
2008-08-31 17:17:46 -04:00
|
|
|
[ [ call>> callstack. ] when* ]
|
2008-02-21 02:25:59 -05:00
|
|
|
t "Call stack" <labelled-pane> ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2007-11-16 01:19:13 -05:00
|
|
|
: <datastack-display> ( model -- gadget )
|
2008-08-31 17:17:46 -04:00
|
|
|
[ [ data>> stack. ] when* ]
|
2008-02-21 02:25:59 -05:00
|
|
|
t "Data stack" <labelled-pane> ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2007-11-16 01:19:13 -05:00
|
|
|
: <retainstack-display> ( model -- gadget )
|
2008-08-31 17:24:40 -04:00
|
|
|
[ [ retain>> stack. ] when* ]
|
2008-02-21 02:25:59 -05:00
|
|
|
t "Retain stack" <labelled-pane> ;
|
|
|
|
|
2008-07-10 21:32:17 -04:00
|
|
|
TUPLE: traceback-gadget < track ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-21 02:25:59 -05:00
|
|
|
M: traceback-gadget pref-dim* drop { 550 600 } ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
|
|
|
: <traceback-gadget> ( model -- gadget )
|
2009-02-02 01:02:55 -05:00
|
|
|
vertical traceback-gadget new-track
|
2008-09-27 15:36:04 -04:00
|
|
|
swap >>model
|
2008-07-14 01:39:02 -04:00
|
|
|
|
|
|
|
dup model>>
|
2009-02-02 01:02:55 -05:00
|
|
|
horizontal <track>
|
2008-09-27 15:36:04 -04:00
|
|
|
over <datastack-display> 1/2 track-add
|
|
|
|
swap <retainstack-display> 1/2 track-add
|
|
|
|
1/3 track-add
|
2008-07-14 01:39:02 -04:00
|
|
|
|
2008-07-24 17:16:13 -04:00
|
|
|
dup model>> <callstack-display> 2/3 track-add
|
2008-07-14 01:39:02 -04:00
|
|
|
|
2008-11-20 22:58:30 -05:00
|
|
|
add-toolbar ;
|
2007-09-20 18:09:08 -04:00
|
|
|
|
2008-02-27 18:15:52 -05:00
|
|
|
: variables ( traceback -- )
|
2009-02-05 05:00:27 -05:00
|
|
|
model>> [ dup [ name>> vars-in-scope ] when ] <filter> i:inspect-model ;
|
2008-02-27 18:15:52 -05:00
|
|
|
|
2007-09-20 18:09:08 -04:00
|
|
|
: traceback-window ( continuation -- )
|
2008-11-24 13:29:24 -05:00
|
|
|
<model> <traceback-gadget> "Traceback" open-status-window ;
|
2009-01-07 16:06:43 -05:00
|
|
|
|
|
|
|
: inspect-continuation ( traceback -- )
|
2009-02-05 05:00:27 -05:00
|
|
|
control-value i:inspector ;
|
2009-01-07 16:06:43 -05:00
|
|
|
|
|
|
|
traceback-gadget "toolbar" f {
|
|
|
|
{ T{ key-down f f "v" } variables }
|
|
|
|
{ T{ key-down f f "n" } inspect-continuation }
|
|
|
|
} define-command-map
|