diff --git a/basis/inspector/inspector.factor b/basis/inspector/inspector.factor index 1347b4f207..05c4dc2a94 100644 --- a/basis/inspector/inspector.factor +++ b/basis/inspector/inspector.factor @@ -52,15 +52,15 @@ PRIVATE> 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 diff --git a/basis/ui/tools/inspector/inspector.factor b/basis/ui/tools/inspector/inspector.factor index fa45868c64..1e9a99e198 100644 --- a/basis/ui/tools/inspector/inspector.factor +++ b/basis/ui/tools/inspector/inspector.factor @@ -65,10 +65,10 @@ M: hashtable make-slot-descriptions inspector-renderer >>renderer monospace-font >>font ; -: ( obj -- gadget ) +: ( model -- gadget ) vertical inspector-gadget new-track add-toolbar - swap >>model + swap >>model dup model>> >>table dup model>> "Object" f track-add dup table>> "Contents" 1 track-add ; @@ -112,5 +112,8 @@ inspector-gadget "multi-touch" f { { up-action com-refresh } } define-command-map +: inspect-model ( model -- ) + "Inspector" open-status-window ; + : inspector ( obj -- ) - "Inspector" open-status-window ; \ No newline at end of file + inspect-model ; diff --git a/basis/ui/tools/operations/operations.factor b/basis/ui/tools/operations/operations.factor index ec3a7a2cf5..fa259032d3 100644 --- a/basis/ui/tools/operations/operations.factor +++ b/basis/ui/tools/operations/operations.factor @@ -9,7 +9,7 @@ compiler.units accessors vocabs.parser macros.expander ui 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 @@ -35,8 +35,12 @@ 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{ diff --git a/basis/ui/tools/tools.factor b/basis/ui/tools/tools.factor index 0b93807ca8..8aed4319d3 100644 --- a/basis/ui/tools/tools.factor +++ b/basis/ui/tools/tools.factor @@ -1,8 +1,8 @@ ! 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 ( -- ) diff --git a/basis/ui/tools/traceback/traceback.factor b/basis/ui/tools/traceback/traceback.factor index 2d96dbb9c5..bb09aa2de2 100644 --- a/basis/ui/tools/traceback/traceback.factor +++ b/basis/ui/tools/traceback/traceback.factor @@ -3,8 +3,9 @@ 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 : ( model -- gadget ) @@ -37,25 +38,14 @@ M: traceback-gadget pref-dim* drop { 550 600 } ; add-toolbar ; -: ( model -- gadget ) - [ [ name>> namestack. ] when* ] - ; - -: ( model -- gadget ) - - - { 400 400 } >>min-dim - { 400 400 } >>max-dim ; - : variables ( traceback -- ) - model>> - "Dynamic variables" open-status-window ; + model>> [ dup [ name>> vars-in-scope ] when ] i:inspect-model ; : traceback-window ( continuation -- ) "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 }