tools.completion: adding complete-vocab-words?.
parent
8a4dba4cd9
commit
9887829103
|
@ -1,6 +1,4 @@
|
|||
USING: assocs kernel sequences tools.test ;
|
||||
|
||||
IN: tools.completion
|
||||
USING: assocs kernel sequences tools.completion tools.test ;
|
||||
|
||||
{ f } [ "abc" "def" fuzzy ] unit-test
|
||||
{ V{ 4 5 6 } } [ "set-nth" "nth" fuzzy ] unit-test
|
||||
|
@ -28,6 +26,12 @@ IN: tools.completion
|
|||
{ f } [ { "USING:" "A" "B" "C" ";" } complete-vocab? ] unit-test
|
||||
{ t } [ { "X" ";" "USING:" "A" "B" "C" } complete-vocab? ] unit-test
|
||||
|
||||
{ f } [ { "FROM:" } complete-vocab-words? ] unit-test
|
||||
{ f } [ { "FROM:" "math" } complete-vocab-words? ] unit-test
|
||||
{ t } [ { "FROM:" "math" "=>" } complete-vocab-words? ] unit-test
|
||||
{ f } [ { "FROM:" "math" "=>" "+" ";" } complete-vocab-words? ] unit-test
|
||||
{ f } [ { "BOOM:" "math" "=>" "+" } complete-vocab-words? ] unit-test
|
||||
|
||||
{ f } [ { "CHAR:" } complete-char? ] unit-test
|
||||
{ t } [ { "CHAR:" "" } complete-char? ] unit-test
|
||||
{ t } [ { "CHAR:" "a" } complete-char? ] unit-test
|
||||
|
|
|
@ -84,6 +84,9 @@ PRIVATE>
|
|||
: vocabs-matching ( str -- seq )
|
||||
all-disk-vocabs-recursive filter-vocabs name-completions ;
|
||||
|
||||
: vocab-words-matching ( str vocab -- seq )
|
||||
vocab-words name-completions ;
|
||||
|
||||
: chars-matching ( str -- seq )
|
||||
name-map keys dup zip completions ;
|
||||
|
||||
|
@ -114,8 +117,10 @@ PRIVATE>
|
|||
<PRIVATE
|
||||
|
||||
: (complete-single-vocab?) ( str -- ? )
|
||||
{ "IN:" "USE:" "UNUSE:" "QUALIFIED:" "QUALIFIED-WITH:" }
|
||||
member? ; inline
|
||||
{
|
||||
"IN:" "USE:" "UNUSE:" "QUALIFIED:"
|
||||
"QUALIFIED-WITH:" "FROM:" "EXCLUDE:"
|
||||
} member? ; inline
|
||||
|
||||
: complete-single-vocab? ( tokens -- ? )
|
||||
dup last empty? [
|
||||
|
@ -136,6 +141,13 @@ PRIVATE>
|
|||
: complete-vocab? ( tokens -- ? )
|
||||
{ [ complete-single-vocab? ] [ complete-vocab-list? ] } 1|| ;
|
||||
|
||||
: complete-vocab-words? ( tokens -- ? )
|
||||
harvest chop-; {
|
||||
[ length 3 >= ]
|
||||
[ first { "FROM:" "EXCLUDE:" } member? ]
|
||||
[ third "=>" = ]
|
||||
} 1&& ;
|
||||
|
||||
<PRIVATE
|
||||
|
||||
: complete-token? ( tokens token -- ? )
|
||||
|
|
Loading…
Reference in New Issue