From dbb0cf55cca93b0e7fd9cebd172b44202b8d97de Mon Sep 17 00:00:00 2001 From: Slava Pestov <slava@slava-pestovs-macbook-pro.local> Date: Thu, 3 Apr 2008 21:29:56 -0500 Subject: [PATCH] Fix UI completion bug --- extra/ui/tools/listener/listener.factor | 22 ++++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/extra/ui/tools/listener/listener.factor b/extra/ui/tools/listener/listener.factor index 7db0d63f45..52c3d2de42 100755 --- a/extra/ui/tools/listener/listener.factor +++ b/extra/ui/tools/listener/listener.factor @@ -1,4 +1,4 @@ -! Copyright (C) 2005, 2007 Slava Pestov. +! Copyright (C) 2005, 2008 Slava Pestov. ! See http://factorcode.org/license.txt for BSD license. USING: inspector ui.tools.interactor ui.tools.inspector ui.tools.workspace help.markup io io.streams.duplex io.styles @@ -7,7 +7,7 @@ ui.gadgets ui.gadgets.editors ui.gadgets.labelled ui.gadgets.panes ui.gadgets.buttons ui.gadgets.scrollers ui.gadgets.tracks ui.gestures ui.operations vocabs words prettyprint listener debugger threads boxes concurrency.flags -math arrays ; +math arrays generic accessors ; IN: ui.tools.listener TUPLE: listener-gadget input output stack ; @@ -101,16 +101,26 @@ M: listener-operation invoke-command ( target command -- ) : clear-stack ( listener -- ) [ clear ] swap (call-listener) ; -: word-completion-string ( word listener -- string ) - >r dup word-name swap word-vocabulary dup vocab-words r> - listener-gadget-input interactor-use memq? +GENERIC# word-completion-string 1 ( word listener -- string ) + +M: method-body word-completion-string + >r "method-generic" word-prop r> word-completion-string ; + +USE: generic.standard.engines.tuple + +M: tuple-dispatch-engine-word word-completion-string + >r "engine-generic" word-prop r> word-completion-string ; + +M: word word-completion-string ( word listener -- string ) + >r [ word-name ] [ word-vocabulary ] bi dup vocab-words r> + input>> interactor-use memq? [ drop ] [ [ "USE: " % % " " % % ] "" make ] if ; : insert-word ( word -- ) get-workspace workspace-listener [ word-completion-string ] keep - listener-gadget-input user-input ; + input>> user-input ; : quot-action ( interactor -- lines ) dup control-value