tools.completion: better paths-matching.

db4
John Benediktsson 2012-10-22 18:51:38 -07:00
parent 3049d187f6
commit 6b34719f63
1 changed files with 23 additions and 6 deletions

View File

@ -2,10 +2,10 @@
! See http://factorcode.org/license.txt for BSD license. ! See http://factorcode.org/license.txt for BSD license.
USING: accessors arrays assocs colors.constants combinators USING: accessors arrays assocs colors.constants combinators
combinators.short-circuit fry io io.directories kernel locals combinators.short-circuit fry io.directories io.files
make math math.order namespaces sequences sorting splitting io.files.info io.pathnames kernel locals make math math.order
strings unicode.case unicode.categories unicode.data vectors sequences sorting splitting unicode.categories unicode.data
vocabs vocabs.hierarchy words ; vectors vocabs vocabs.hierarchy ;
IN: tools.completion IN: tools.completion
@ -107,8 +107,23 @@ PRIVATE>
: colors-matching ( str -- seq ) : colors-matching ( str -- seq )
named-colors dup zip completions ; named-colors dup zip completions ;
: paths-matching ( str path -- seq ) <PRIVATE
directory-files dup zip completions ;
: directory-paths ( directory -- paths )
dup '[
[
[ _ prepend-path ]
[ file-info directory? [ path-separator append ] when ]
bi
] map
] with-directory-files ;
PRIVATE>
: paths-matching ( str -- seq )
dup file-directory [ ?head drop ] keep
dup { [ exists? ] [ file-info directory? ] } 1&&
[ directory-paths dup zip completions ] [ 2drop { } ] if ;
<PRIVATE <PRIVATE
@ -150,3 +165,5 @@ PRIVATE>
: complete-CHAR:? ( tokens -- ? ) "CHAR:" complete-token? ; : complete-CHAR:? ( tokens -- ? ) "CHAR:" complete-token? ;
: complete-COLOR:? ( tokens -- ? ) "COLOR:" complete-token? ; : complete-COLOR:? ( tokens -- ? ) "COLOR:" complete-token? ;
: complete-P"? ( tokens -- ? ) "P\"" complete-token? ;