From 07a30613f0b0a5b782d30dbeb46df8382f8a4e2a Mon Sep 17 00:00:00 2001 From: Marlon Richert Date: Sun, 21 Mar 2021 17:24:49 +0200 Subject: 48214: add file types to _expand completions, so they can be colored through complist --- ChangeLog | 4 ++++ Completion/Base/Completer/_expand | 9 +++++---- 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 + * 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 -- cgit 1.4.1