M: tuple error. describe ;
-: namestack. ( seq -- )
+: vars-in-scope ( seq -- alist )
[ [ global eq? not ] filter [ keys ] gather ] keep
- '[ dup _ assoc-stack ] H{ } map>assoc describe ;
+ '[ dup _ assoc-stack ] H{ } map>assoc ;
: .vars ( -- )
- namestack namestack. ;
+ namestack vars-in-scope describe ;
: :vars ( -- )
- error-continuation get name>> namestack. ;
+ error-continuation get name>> vars-in-scope describe ;
SYMBOL: me
inspector-renderer >>renderer
monospace-font >>font ;
-: <inspector-gadget> ( obj -- gadget )
+: <inspector-gadget> ( model -- gadget )
vertical inspector-gadget new-track
add-toolbar
- swap <model> >>model
+ swap >>model
dup model>> <inspector-table> >>table
dup model>> <summary-gadget> "Object" <labelled-gadget> f track-add
dup table>> <scroller> "Contents" <labelled-gadget> 1 track-add ;
{ up-action com-refresh }
} define-command-map
+: inspect-model ( model -- )
+ <inspector-gadget> "Inspector" open-status-window ;
+
: inspector ( obj -- )
- <inspector-gadget> "Inspector" open-status-window ;
\ No newline at end of file
+ <model> inspect-model ;
ui.tools.browser ui.tools.listener ui.tools.listener.completion
ui.tools.profiler ui.tools.inspector ui.tools.traceback
ui.commands ui.gadgets.editors ui.gestures ui.operations
-ui.tools.deploy ;
+ui.tools.deploy models ;
IN: ui.tools.operations
V{ } clone operations set-global
[ drop t ] \ com-unparse H{ } define-operation
-! Input
+! Models
+[ model? ] \ inspect-model H{
+ { +primary+ t }
+} define-operation
+! Input
: com-input ( obj -- ) string>> listener-input ;
[ input? ] \ com-input H{
! Copyright (C) 2006, 2009 Slava Pestov.
! See http://factorcode.org/license.txt for BSD license.
USING: memory system kernel tools.vocabs ui.tools.operations
-ui.tools.listener ui.tools.browser ui.tools.common ui.commands
-ui.gestures ui ;
+ui.tools.listener ui.tools.browser ui.tools.common
+ui.tools.walker ui.commands ui.gestures ui ;
IN: ui.tools
: main ( -- )
USING: accessors continuations kernel models namespaces
prettyprint ui ui.commands ui.gadgets ui.gadgets.labelled assocs
ui.gadgets.tracks ui.gadgets.buttons ui.gadgets.panes
-ui.gadgets.status-bar ui.gadgets.scrollers ui.tools.inspector
-ui.gestures sequences hashtables inspector ;
+ui.gadgets.status-bar ui.gadgets.scrollers
+ui.gestures sequences inspector models.filter ;
+QUALIFIED-WITH: ui.tools.inspector i
IN: ui.tools.traceback
: <callstack-display> ( model -- gadget )
add-toolbar ;
-: <namestack-display> ( model -- gadget )
- [ [ name>> namestack. ] when* ]
- <pane-control> ;
-
-: <variables-gadget> ( model -- gadget )
- <namestack-display>
- <limited-scroller>
- { 400 400 } >>min-dim
- { 400 400 } >>max-dim ;
-
: variables ( traceback -- )
- model>> <variables-gadget>
- "Dynamic variables" open-status-window ;
+ model>> [ dup [ name>> vars-in-scope ] when ] <filter> i:inspect-model ;
: traceback-window ( continuation -- )
<model> <traceback-gadget> "Traceback" open-status-window ;
: inspect-continuation ( traceback -- )
- control-value inspector ;
+ control-value i:inspector ;
traceback-gadget "toolbar" f {
{ T{ key-down f f "v" } variables }