Fix one-word-elt

db4
Slava Pestov 2007-12-13 16:34:36 -05:00
parent fda9958ab4
commit 114ee74041
4 changed files with 30 additions and 7 deletions

View File

@ -195,11 +195,11 @@ TUPLE: one-word-elt ;
M: one-word-elt prev-elt
drop
[ [ f -rot >r 1- r> (prev-word) ] (word-elt) ] (prev-char) ;
[ f -rot >r 1- r> (prev-word) ] (word-elt) ;
M: one-word-elt next-elt
drop
[ [ f -rot (next-word) ] (word-elt) ] (next-char) ;
[ f -rot (next-word) ] (word-elt) ;
TUPLE: word-elt ;

View File

@ -0,0 +1,13 @@
USING: tools.deploy.config ;
H{
{ deploy-compiler? t }
{ deploy-word-props? f }
{ deploy-ui? t }
{ deploy-reflection 1 }
{ deploy-name "springies.models.2x2snake" }
{ deploy-c-types? f }
{ deploy-word-defs? f }
{ "stop-after-last-window?" t }
{ deploy-math? t }
{ deploy-io 1 }
}

View File

@ -30,6 +30,16 @@ tools.test.inference tools.test.ui models ;
] with-grafted-gadget
] unit-test
[ "bar" ] [
<editor> "editor" set
"editor" get [
"bar\nbaz quux" "editor" get set-editor-string
{ 0 3 } "editor" get editor-caret set-model
"editor" get select-word
"editor" get gadget-selection
] with-grafted-gadget
] unit-test
{ 0 1 } [ <editor> ] unit-test-effect
"hello" <model> <field> "field" set

View File

@ -320,11 +320,6 @@ M: editor gadget-text* editor-string % ;
: end-of-document ( editor -- ) T{ doc-elt } editor-next ;
: selected-word ( editor -- string )
dup gadget-selection? [
dup T{ one-word-elt } select-elt
] unless gadget-selection ;
: position-caret ( editor -- )
mouse-elt dup T{ one-char-elt } =
[ drop dup extend-selection dup editor-mark click-loc ]
@ -408,6 +403,11 @@ editor "caret-motion" f {
: select-word T{ one-word-elt } select-elt ;
: selected-word ( editor -- string )
dup gadget-selection?
[ dup select-word ] unless
gadget-selection ;
: select-previous-character T{ char-elt } editor-select-prev ;
: select-next-character T{ char-elt } editor-select-next ;