Improved word completion
parent
fcb78822b2
commit
457fea23f7
|
@ -7,7 +7,7 @@ ui.gadgets ui.gadgets.editors ui.gadgets.labelled
|
||||||
ui.gadgets.panes ui.gadgets.buttons ui.gadgets.scrollers
|
ui.gadgets.panes ui.gadgets.buttons ui.gadgets.scrollers
|
||||||
ui.gadgets.tracks ui.gestures ui.operations vocabs words
|
ui.gadgets.tracks ui.gestures ui.operations vocabs words
|
||||||
prettyprint listener debugger threads boxes concurrency.flags
|
prettyprint listener debugger threads boxes concurrency.flags
|
||||||
math arrays generic accessors ;
|
math arrays generic accessors combinators ;
|
||||||
IN: ui.tools.listener
|
IN: ui.tools.listener
|
||||||
|
|
||||||
TUPLE: listener-gadget input output stack ;
|
TUPLE: listener-gadget input output stack ;
|
||||||
|
@ -101,26 +101,32 @@ M: listener-operation invoke-command ( target command -- )
|
||||||
: clear-stack ( listener -- )
|
: clear-stack ( listener -- )
|
||||||
[ clear ] swap (call-listener) ;
|
[ clear ] swap (call-listener) ;
|
||||||
|
|
||||||
GENERIC# word-completion-string 1 ( word listener -- string )
|
GENERIC: word-completion-string ( word -- string )
|
||||||
|
|
||||||
|
M: word word-completion-string
|
||||||
|
word-name ;
|
||||||
|
|
||||||
M: method-body word-completion-string
|
M: method-body word-completion-string
|
||||||
>r "method-generic" word-prop r> word-completion-string ;
|
"method-generic" word-prop word-completion-string ;
|
||||||
|
|
||||||
USE: generic.standard.engines.tuple
|
USE: generic.standard.engines.tuple
|
||||||
|
|
||||||
M: tuple-dispatch-engine-word word-completion-string
|
M: tuple-dispatch-engine-word word-completion-string
|
||||||
>r "engine-generic" word-prop r> word-completion-string ;
|
"engine-generic" word-prop word-completion-string ;
|
||||||
|
|
||||||
M: word word-completion-string ( word listener -- string )
|
: use-if-necessary ( word seq -- )
|
||||||
>r [ word-name ] [ word-vocabulary ] bi dup vocab-words r>
|
>r word-vocabulary vocab-words r>
|
||||||
input>> interactor-use memq?
|
{
|
||||||
[ drop ] [ [ "USE: " % % " " % % ] "" make ] if ;
|
{ [ dup not ] [ 2drop ] }
|
||||||
|
{ [ 2dup memq? ] [ 2drop ] }
|
||||||
|
{ [ t ] [ push ] }
|
||||||
|
} cond ;
|
||||||
|
|
||||||
: insert-word ( word -- )
|
: insert-word ( word -- )
|
||||||
get-workspace
|
get-workspace workspace-listener input>>
|
||||||
workspace-listener
|
[ >r word-completion-string r> user-input ]
|
||||||
[ word-completion-string ] keep
|
[ interactor-use use-if-necessary ]
|
||||||
input>> user-input ;
|
2bi ;
|
||||||
|
|
||||||
: quot-action ( interactor -- lines )
|
: quot-action ( interactor -- lines )
|
||||||
dup control-value
|
dup control-value
|
||||||
|
|
Loading…
Reference in New Issue