]> gitweb.factorcode.org Git - factor.git/commitdiff
Listener completion improvement
authorslava <slava@factorcode.org>
Tue, 10 Oct 2006 04:14:53 +0000 (04:14 +0000)
committerslava <slava@factorcode.org>
Tue, 10 Oct 2006 04:14:53 +0000 (04:14 +0000)
TODO.FACTOR.txt
library/ui/load.factor
library/ui/test/listener.factor [new file with mode: 0644]
library/ui/tools/listener.factor

index 77486288b665b5109a606e55d7909b0ccee27132..a1ae42f29045ff34c54be1e57a042c107046123c 100644 (file)
@@ -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:
 
index 821613e549b5863b30b53cc02d2074c7dd14ffa1..ba14d4096dcb6d4d0ab2146e635ac86a08f5760f 100644 (file)
@@ -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 (file)
index 0000000..b2b43c1
--- /dev/null
@@ -0,0 +1,13 @@
+IN: temporary
+USING: gadgets-listener words arrays namespaces test kernel ;
+
+<listener-gadget> "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
index 23aa5e485606112d8aa8fba4cc22dce976d2a567..ba6fbdc5e9429f27391027d9724410e2e0ea58ce 100644 (file)
@@ -149,8 +149,14 @@ M: listener-gadget tool-help
 : show-history ( listener -- )
     [ <history-gadget> ] 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 ] }