]> gitweb.factorcode.org Git - factor.git/commitdiff
Better history completion in listener
authorslava <slava@factorcode.org>
Mon, 13 Nov 2006 04:38:44 +0000 (04:38 +0000)
committerslava <slava@factorcode.org>
Mon, 13 Nov 2006 04:38:44 +0000 (04:38 +0000)
library/prettyprint/backend.factor
library/test/prettyprint.factor
library/tools/completion.factor
library/ui/tools/listener.factor
library/ui/tools/search.factor

index 46ed2b961bf442e5e3df6ced83008150f15304a2..2df69380ba70661688d18244884f2e143c3ca0a8 100644 (file)
@@ -133,10 +133,9 @@ M: hashtable >pprint-sequence hash>alist \ H{ \ } t ;
 
 M: tuple >pprint-sequence tuple>array \ T{ \ } t ;
 
-M: wrapper >pprint-sequence
-    wrapped dup 1array swap word? [ \ \ f ] [ \ W{ \ } ] if f ;
+M: wrapper >pprint-sequence wrapped 1array \ W{ \ } f ;
 
-M: object pprint*
+: pprint-object ( obj -- )
     [
         >pprint-sequence H{ } <flow
         rot [ pprint-word ] when*
@@ -144,3 +143,12 @@ M: object pprint*
         swap pprint-elements
         block> [ pprint-word ] when* block>
     ] check-recursion ;
+    
+M: object pprint* pprint-object ;
+
+M: wrapper pprint*
+    dup wrapped word? [
+        \ \ pprint-word wrapped pprint-word
+    ] [
+        pprint-object
+    ] if ;
index e963124754dd07d7a6d60ebfcbff64dea051c2e0..e585ed7496f5861eac76276f3f04ea9dd85a2e72 100644 (file)
@@ -78,3 +78,6 @@ unit-test
 [ ] [ \ compound see ] unit-test
 
 [ ] [ \ duplex-stream see ] unit-test
+
+[ "[ \\ + ]" ] [ [ \ + ] unparse ] unit-test
+[ "[ \\ [ ]" ] [ [ \ [ ] unparse ] unit-test
index f51df00ee88a714a4a7fcab9daf608fd3aad69f5..76455689bcc6478c92c79ace448b106fc7da69e0 100644 (file)
@@ -56,10 +56,14 @@ USING: kernel arrays sequences math namespaces strings io ;
 
 : completion ( str quot obj -- pair )
     #! pair is { obj score }
-    [ swap call dup rot fuzzy score ] keep swap 2array ; inline
+    pick empty? [
+        2nip 1 2array
+    ] [
+        [ swap call dup rot fuzzy score ] keep swap 2array
+    ] if ; inline
 
 : completions ( str candidates quot -- seq )
-    pick empty? [
+    pick empty? pick length 100 >= and [
         3drop f
     ] [
         [ >r 2dup r> completion ] map 2nip rank-completions
index 9413c7ca124d02c88d37e44091e47b1cda073393..b97b97c94af292b55dad28d479d21a78a7641c9d 100644 (file)
@@ -124,26 +124,26 @@ M: listener-gadget tool-help
     [ set-listener-gadget-minibuffer ] 2keep
     dupd track-add request-focus ;
 
+: show-titled-minibuffer ( listener gadget title -- )
+    <labelled-gadget> swap show-minibuffer ;
+
 : minibuffer-action ( quot -- quot )
     [ find-listener hide-minibuffer ] swap append ;
 
 : show-word-search ( listener action -- )
     minibuffer-action
     >r dup listener-gadget-input selected-word r>
-    <word-search> "Word search" <labelled-gadget>
-    swap show-minibuffer ;
+    <word-search> "Word search" show-titled-minibuffer ;
 
 : show-source-files-search ( listener action -- )
     minibuffer-action
     "" swap <source-files-search>
-    "Source file search" <labelled-gadget>
-    swap show-minibuffer ;
+    "Source file search" show-titled-minibuffer ;
 
 : show-vocabs-search ( listener action -- )
     minibuffer-action
     >r dup listener-gadget-input selected-word r>
-    <vocabs-search> "Vocabulary search" <labelled-gadget>
-    swap show-minibuffer ;
+    <vocabs-search> "Vocabulary search" show-titled-minibuffer ;
 
 : listener-history ( listener -- seq )
     listener-gadget-input interactor-history <reversed> ;
@@ -151,14 +151,10 @@ M: listener-gadget tool-help
 : history-action ( string -- )
     find-listener listener-gadget-input set-editor-text ;
 
-: <history-gadget> ( listener -- gadget )
-    listener-history <model>
-    [ [ dup print-input ] make-pane ]
-    [ history-action ] minibuffer-action
-    <list> <scroller> "History" <labelled-gadget> ;
-
 : show-history ( listener -- )
-    [ <history-gadget> ] keep show-minibuffer ;
+    dup listener-gadget-input editor-text
+    over listener-history [ history-action ] minibuffer-action
+    <history-search> "History search" show-titled-minibuffer ;
 
 : completion-string ( word listener -- string )
     >r dup word-name swap word-vocabulary dup vocab r>
index 997c3353467060c202ac691b292b2e92e39df5c1..4251f41099b555082d6fb2dc02d7084b354fe87b 100644 (file)
@@ -81,7 +81,11 @@ M: live-search focusable-child* live-search-field ;
     <live-search> ;
 
 : <vocabs-search> ( string action -- gadget )
-    vocabs
-    [ string-completions ] curry
+    vocabs [ string-completions ] curry
     [ [ <vocab-link> ] string-completion. ]
     <live-search> ;
+
+: <history-search> ( string seq action -- gadget )
+    swap [ string-completions ] curry
+    [ dup <input> write-object ]
+    <live-search> ;