summaryrefslogtreecommitdiff
path: root/Completion/Base
diff options
context:
space:
mode:
Diffstat (limited to 'Completion/Base')
-rw-r--r--Completion/Base/Completer/_expand_alias5
-rw-r--r--Completion/Base/Core/_description16
2 files changed, 12 insertions, 9 deletions
diff --git a/Completion/Base/Completer/_expand_alias b/Completion/Base/Completer/_expand_alias
index 8848e668d..8240e4162 100644
--- a/Completion/Base/Completer/_expand_alias
+++ b/Completion/Base/Completer/_expand_alias
@@ -1,7 +1,7 @@
#compdef -K _expand_alias complete-word \C-xa
local word expl tmp pre sel what
-local -a tmpa
+local -a tmpa suf
eval "$_comp_setup"
@@ -58,7 +58,8 @@ if [[ -n $tmp ]]; then
tmp="\\$tmp"
fi
fi
- $pre _wanted aliases expl alias compadd -UQ -- ${tmp%%[[:blank:]]##}
+ zstyle -T ":completion:${curcontext}:" add-space || suf=( -S '' )
+ $pre _wanted aliases expl alias compadd -UQ "$suf[@]" -- ${tmp%%[[:blank:]]##}
elif (( $#pre )) && zstyle -t ":completion:${curcontext}:" complete; then
$pre _aliases -s "$sel" -S ''
else
diff --git a/Completion/Base/Core/_description b/Completion/Base/Core/_description
index 3d993271c..304c747a6 100644
--- a/Completion/Base/Core/_description
+++ b/Completion/Base/Core/_description
@@ -47,17 +47,19 @@ if [[ -z "$_comp_no_ignore" ]]; then
zstyle -a ":completion:${curcontext}:$1" ignored-patterns _comp_ignore ||
_comp_ignore=()
- zstyle -s ":completion:${curcontext}:$1" ignore-line hidden &&
+ if zstyle -s ":completion:${curcontext}:$1" ignore-line hidden; then
+ local -a qwords
+ qwords=( ${words//(#m)[\[\]()\\*?#<>~\^\|]/\\$MATCH} )
case "$hidden" in
- true|yes|on|1) _comp_ignore=( "$_comp_ignore[@]" ${(q)"${words[@]}"} );;
- current) _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );;
+ true|yes|on|1) _comp_ignore+=( $qwords );;
+ current) _comp_ignore+=( $qwords[CURRENT] );;
current-shown)
[[ "$compstate[old_list]" = *shown* ]] &&
- _comp_ignore=( "$_comp_ignore[@]" "${(q)words[CURRENT]}" );;
- other) _comp_ignore=( "$_comp_ignore[@]"
- "${(@q)words[1,CURRENT-1]}"
- "${(@q)words[CURRENT+1,-1]}" );;
+ _comp_ignore+=( $qwords[CURRENT] );;
+ other) _comp_ignore+=( $qwords[1,CURRENT-1]
+ $qwords[CURRENT+1,-1] );;
esac
+ fi
# Ensure the ignore option is first so we can override it
# for fake-always.