From: slava Date: Tue, 10 Oct 2006 04:14:53 +0000 (+0000) Subject: Listener completion improvement X-Git-Url: https://gitweb.factorcode.org/gitweb.cgi?p=factor.git;a=commitdiff_plain;h=8710bf56c01855cbe4279caf15e02b5b6d28bdbd Listener completion improvement --- diff --git a/TODO.FACTOR.txt b/TODO.FACTOR.txt index 77486288b6..a1ae42f290 100644 --- a/TODO.FACTOR.txt +++ b/TODO.FACTOR.txt @@ -1,8 +1,6 @@ - auto-invoke code gc - fix alien-callback/SEH bug on win32 - x11: scroll up/down wiggles caret -- tab completion: add a USE: if necessary -- cocoa: windows are not updated while resizing + ui: diff --git a/library/ui/load.factor b/library/ui/load.factor index 821613e549..ba14d4096d 100644 --- a/library/ui/load.factor +++ b/library/ui/load.factor @@ -52,6 +52,7 @@ PROVIDE: library/ui { "test/gadgets.factor" "test/models.factor" "test/document.factor" + "test/listener.factor" "test/lists.factor" "test/rectangles.factor" "test/commands.factor" diff --git a/library/ui/test/listener.factor b/library/ui/test/listener.factor new file mode 100644 index 0000000000..b2b43c1e2a --- /dev/null +++ b/library/ui/test/listener.factor @@ -0,0 +1,13 @@ +IN: temporary +USING: gadgets-listener words arrays namespaces test kernel ; + + "listener" set + +"kernel" vocab 1array "listener" get set-listener-gadget-use + +[ "dup" ] [ \ dup "listener" get completion-string ] unit-test + +[ "USE: words word-name" ] +[ \ word-name "listener" get completion-string ] unit-test + +[ ] [ "listener" get show-history ] unit-test diff --git a/library/ui/tools/listener.factor b/library/ui/tools/listener.factor index 23aa5e4856..ba6fbdc5e9 100644 --- a/library/ui/tools/listener.factor +++ b/library/ui/tools/listener.factor @@ -149,8 +149,14 @@ M: listener-gadget tool-help : show-history ( listener -- ) [ ] keep show-minibuffer ; +: completion-string ( word listener -- string ) + >r dup word-name swap word-vocabulary dup vocab r> + listener-gadget-use memq? + [ drop ] [ [ "USE: " % % " " % % ] "" make ] if ; + : insert-completion ( completion -- ) - word-name find-listener listener-gadget-input user-input ; + find-listener [ completion-string ] keep + listener-gadget-input user-input ; listener-gadget "toolbar" { { "Restart" T{ key-down f { C+ } "r" } [ start-listener ] }