Fix inspector bug
parent
d34d3a6f31
commit
14b5e35a0e
|
@ -33,10 +33,10 @@ SYMBOL: +editable+
|
||||||
: write-value ( mirror key -- )
|
: write-value ( mirror key -- )
|
||||||
<value-ref> write-slot-editor ;
|
<value-ref> write-slot-editor ;
|
||||||
|
|
||||||
: describe-row ( obj key n -- )
|
: describe-row ( mirror key n -- )
|
||||||
[
|
[
|
||||||
+number-rows+ get [ pprint-cell ] [ drop ] if
|
+number-rows+ get [ pprint-cell ] [ drop ] if
|
||||||
2dup write-key write-value
|
[ write-key ] [ write-value ] 2bi
|
||||||
] with-row ;
|
] with-row ;
|
||||||
|
|
||||||
: summary. ( obj -- ) [ summary ] keep write-object nl ;
|
: summary. ( obj -- ) [ summary ] keep write-object nl ;
|
||||||
|
@ -48,21 +48,19 @@ SYMBOL: +editable+
|
||||||
sort-keys values
|
sort-keys values
|
||||||
] [ keys ] if ;
|
] [ keys ] if ;
|
||||||
|
|
||||||
: describe* ( obj flags -- )
|
: describe* ( obj mirror keys -- )
|
||||||
clone [
|
rot summary.
|
||||||
dup summary.
|
dup empty? [
|
||||||
make-mirror dup sorted-keys dup empty? [
|
2drop
|
||||||
2drop
|
] [
|
||||||
] [
|
dup enum? [ +sequence+ on ] when
|
||||||
dup enum? [ +sequence+ on ] when
|
standard-table-style [
|
||||||
standard-table-style [
|
swap [ -rot describe-row ] curry each-index
|
||||||
dup length
|
] tabular-output
|
||||||
rot [ -rot describe-row ] curry 2each
|
] if ;
|
||||||
] tabular-output
|
|
||||||
] if
|
|
||||||
] bind ;
|
|
||||||
|
|
||||||
: describe ( obj -- ) H{ } describe* ;
|
: describe ( obj -- )
|
||||||
|
dup make-mirror dup sorted-keys describe* ;
|
||||||
|
|
||||||
M: tuple error. describe ;
|
M: tuple error. describe ;
|
||||||
|
|
||||||
|
@ -78,19 +76,21 @@ M: tuple error. describe ;
|
||||||
|
|
||||||
SYMBOL: inspector-hook
|
SYMBOL: inspector-hook
|
||||||
|
|
||||||
[ H{ { +number-rows+ t } } describe* ] inspector-hook set-global
|
[ t +number-rows+ [ describe* ] with-variable ] inspector-hook set-global
|
||||||
|
|
||||||
SYMBOL: inspector-stack
|
SYMBOL: inspector-stack
|
||||||
|
|
||||||
SYMBOL: me
|
SYMBOL: me
|
||||||
|
|
||||||
: reinspect ( obj -- )
|
: reinspect ( obj -- )
|
||||||
dup me set
|
[ me set ]
|
||||||
dup make-mirror dup mirror set keys \ keys set
|
[
|
||||||
inspector-hook get call ;
|
dup make-mirror dup mirror set dup sorted-keys dup \ keys set
|
||||||
|
inspector-hook get call
|
||||||
|
] bi ;
|
||||||
|
|
||||||
: (inspect) ( obj -- )
|
: (inspect) ( obj -- )
|
||||||
dup inspector-stack get push reinspect ;
|
[ inspector-stack get push ] [ reinspect ] bi ;
|
||||||
|
|
||||||
: key@ ( n -- key ) \ keys get nth ;
|
: key@ ( n -- key ) \ keys get nth ;
|
||||||
|
|
||||||
|
@ -123,6 +123,7 @@ SYMBOL: me
|
||||||
"&add ( value key -- ) add new slot" print
|
"&add ( value key -- ) add new slot" print
|
||||||
"&delete ( n -- ) remove a slot" print
|
"&delete ( n -- ) remove a slot" print
|
||||||
"&rename ( key n -- ) change a slot's key" print
|
"&rename ( key n -- ) change a slot's key" print
|
||||||
|
"&globals ( -- ) inspect global namespace" print
|
||||||
"&help -- display this message" print
|
"&help -- display this message" print
|
||||||
nl ;
|
nl ;
|
||||||
|
|
||||||
|
@ -133,3 +134,5 @@ SYMBOL: me
|
||||||
|
|
||||||
: inspect ( obj -- )
|
: inspect ( obj -- )
|
||||||
inspector-stack get [ (inspect) ] [ inspector ] if ;
|
inspector-stack get [ (inspect) ] [ inspector ] if ;
|
||||||
|
|
||||||
|
: &globals ( -- ) global inspect ;
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
! Copyright (C) 2006, 2007 Slava Pestov.
|
! Copyright (C) 2006, 2008 Slava Pestov.
|
||||||
! See http://factorcode.org/license.txt for BSD license.
|
! See http://factorcode.org/license.txt for BSD license.
|
||||||
USING: ui.tools.workspace inspector kernel ui.commands
|
USING: accessors ui.tools.workspace inspector kernel ui.commands
|
||||||
ui.gadgets ui.gadgets.panes ui.gadgets.scrollers
|
ui.gadgets ui.gadgets.panes ui.gadgets.scrollers
|
||||||
ui.gadgets.slots ui.gadgets.tracks ui.gestures
|
ui.gadgets.slots ui.gadgets.tracks ui.gestures
|
||||||
ui.gadgets.buttons namespaces ;
|
ui.gadgets.buttons namespaces ;
|
||||||
|
@ -9,8 +9,10 @@ IN: ui.tools.inspector
|
||||||
TUPLE: inspector-gadget < track object pane ;
|
TUPLE: inspector-gadget < track object pane ;
|
||||||
|
|
||||||
: refresh ( inspector -- )
|
: refresh ( inspector -- )
|
||||||
dup inspector-gadget-object swap inspector-gadget-pane [
|
[ object>> ] [ pane>> ] bi [
|
||||||
H{ { +editable+ t } { +number-rows+ t } } describe*
|
+editable+ on
|
||||||
|
+number-rows+ on
|
||||||
|
describe
|
||||||
] with-pane ;
|
] with-pane ;
|
||||||
|
|
||||||
: <inspector-gadget> ( -- gadget )
|
: <inspector-gadget> ( -- gadget )
|
||||||
|
@ -20,16 +22,14 @@ TUPLE: inspector-gadget < track object pane ;
|
||||||
<pane> g-> set-inspector-gadget-pane <scroller> 1 track,
|
<pane> g-> set-inspector-gadget-pane <scroller> 1 track,
|
||||||
] make-gadget ;
|
] make-gadget ;
|
||||||
|
|
||||||
: inspect-object ( obj inspector -- )
|
: inspect-object ( obj mirror keys inspector -- )
|
||||||
[ set-inspector-gadget-object ] keep refresh ;
|
2nip swap >>object refresh ;
|
||||||
|
|
||||||
\ &push H{ { +nullary+ t } { +listener+ t } } define-command
|
\ &push H{ { +nullary+ t } { +listener+ t } } define-command
|
||||||
|
|
||||||
\ &back H{ { +nullary+ t } { +listener+ t } } define-command
|
\ &back H{ { +nullary+ t } { +listener+ t } } define-command
|
||||||
|
|
||||||
: globals ( -- ) global inspect ;
|
\ &globals H{ { +nullary+ t } { +listener+ t } } define-command
|
||||||
|
|
||||||
\ globals H{ { +nullary+ t } { +listener+ t } } define-command
|
|
||||||
|
|
||||||
: inspector-help ( -- ) "ui-inspector" help-window ;
|
: inspector-help ( -- ) "ui-inspector" help-window ;
|
||||||
|
|
||||||
|
@ -39,7 +39,7 @@ inspector-gadget "toolbar" f {
|
||||||
{ T{ update-object } refresh }
|
{ T{ update-object } refresh }
|
||||||
{ f &push }
|
{ f &push }
|
||||||
{ f &back }
|
{ f &back }
|
||||||
{ f globals }
|
{ f &globals }
|
||||||
{ T{ key-down f f "F1" } inspector-help }
|
{ T{ key-down f f "F1" } inspector-help }
|
||||||
} define-command-map
|
} define-command-map
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue