diff options
-rw-r--r-- | ChangeLog | 4 | ||||
-rw-r--r-- | Completion/Base/Completer/_expand | 9 | ||||
-rw-r--r-- | Test/Y01completion.ztst | 19 |
3 files changed, 28 insertions, 4 deletions
diff --git a/ChangeLog b/ChangeLog index e8be1f36d..eafcd2fa5 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,5 +1,9 @@ 2021-03-31 Oliver Kiddle <opk@zsh.org> + * Marlon Richert: 48214: Completion/Base/Completer/_expand, + Test/Y01completion.ztst: add file types to _expand completions, + so they can be colored through complist + * Christian K: 48192: Completion/Unix/Command/_openstack: Fix openstack completion for new style clients diff --git a/Completion/Base/Completer/_expand b/Completion/Base/Completer/_expand index def522a76..86b4ac6e4 100644 --- a/Completion/Base/Completer/_expand +++ b/Completion/Base/Completer/_expand @@ -11,7 +11,7 @@ setopt localoptions nonomatch [[ _matcher_num -gt 1 ]] && return 1 -local exp word sort expr expl subd suf=" " force opt asp tmp opre pre epre +local exp word sort expr expl subd pref suf=" " force opt asp tmp opre pre epre local continue=0 (( $# )) && @@ -214,9 +214,10 @@ else normal=( "$normal[@]" "$i" ) fi done - (( $#dir )) && compadd "$expl[@]" -UQ -qS/ -a dir - (( $#space )) && compadd "$expl[@]" -UQ -qS " " -a space - (( $#normal )) && compadd "$expl[@]" -UQ -qS "" -a normal + pref="${${word:#[~/]*}:+$PWD}/" + (( $#dir )) && compadd "$expl[@]" -fW "$pref" -UQ -qS/ -a dir + (( $#space )) && compadd "$expl[@]" -fW "$pref" -UQ -qS " " -a space + (( $#normal )) && compadd "$expl[@]" -fW "$pref" -UQ -qS "" -a normal fi if _requested all-expansions; then local disp dstr diff --git a/Test/Y01completion.ztst b/Test/Y01completion.ztst index 571f3cf16..eff6910c2 100644 --- a/Test/Y01completion.ztst +++ b/Test/Y01completion.ztst @@ -44,6 +44,25 @@ >line: {: dir1/}{} >line: {: dir2/}{} + comptest $': *\t\t\t\t\t\t\t' +0:_expand shows file types +>line: {: dir1/}{} +>DESCRIPTION:{expansions} +>DI:{dir1} +>DI:{dir2} +>FI:{file1} +>FI:{file2} +>DESCRIPTION:{all expansions} +>NO:{dir1 dir2 file1 file2} +>DESCRIPTION:{original} +>NO:{*} +>line: {: dir1/}{} +>line: {: dir2/}{} +>line: {: file1 }{} +>line: {: file2 }{} +>line: {: dir1 dir2 file1 file2 }{} +>line: {: *}{} + comptesteval '_users () { compadd user1 user2 }' comptest $': ~\t\t\t\t\t' 0:tilde |