Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

Re: PATCH: git subcommand completion formatting



Bart wrote:
> I see you handled the list-separator style.

There are, however, a few other functions with a hard coded list
separators. This fixes them.

Oliver

diff --git a/Completion/Unix/Type/_email_addresses b/Completion/Unix/Type/_email_addresses
index 926e8b4..7d5c942 100644
--- a/Completion/Unix/Type/_email_addresses
+++ b/Completion/Unix/Type/_email_addresses
@@ -88,7 +88,7 @@ _email-local() {
 _email_addresses() {
   local -a plugins reply list args
   local -A opts files
-  local plugin rcfile muttrc expl ret fret
+  local plugin rcfile muttrc expl sep ret fret
 
   local __specialx='][()<>@,;:\\".'
   local __spacex=" 	"				# Space, tab
@@ -159,7 +159,8 @@ _email_addresses() {
 
 	  if (( fret == 300 )); then
 	    if (( ! $+opts[-c] )) && [[ $opts[-n] = $plugin ]]; then
-	      zformat -a list ' -- ' "${reply[@]}"
+	      zstyle -s ":completion:${curcontext}:$curtag" list-separator sep || sep=--
+	      zformat -a list " $sep " "${reply[@]}"
 	      _wanted mail-aliases expl 'alias' compadd "$@" \
 		  -d list - ${reply%%:*} && ret=0
 	    else
diff --git a/Completion/Zsh/Command/_fc b/Completion/Zsh/Command/_fc
index 1589244..68456cc 100644
--- a/Completion/Zsh/Command/_fc
+++ b/Completion/Zsh/Command/_fc
@@ -1,7 +1,7 @@
 #compdef fc history r
 
 local curcontext="$curcontext" state state_descr line ret=1
-local list events num cmd
+local events num cmd sep
 typeset -A opt_args
 local fc_common fc_hist fc_r
 
@@ -67,21 +67,20 @@ case $service in
 esac
 
 if [[ -n $state ]]; then
+  zstyle -s ":completion:${curcontext}:" list-separator sep || sep=--
   if [[ -z ${line:#*=*} ]] && compset -P '*='; then
     _message -e replacements 'replacement'
   elif [[ -prefix [0-9] ]]; then
-    events=( ${(ps.\0.)"$(printf '%s:%s\0' ${(kv)history})"} )
-    zformat -a list " -- " "$events[@]"
-    _wanted -2V events expl "$state_descr" compadd -M "B:0=" -ld list - \
-        "${events[@]%%:*}"
+    events=( ${(0)"$(printf "%-${#HISTNO}.${#HISTNO}s $sep %s\0" "${(kv)history[@]}")"} )
+    _wanted -2V events expl "$state_descr" compadd -M "B:0=" -ld events - \
+        "${events[@]%% *}"
   elif [[ -prefix - ]]; then
-    for num cmd in ${(kv)history}; do
+    for num cmd in "${(kv@)history}"; do
       (( num=num - HISTNO ))
-      events+=( $num:$cmd )
+      events+=( "${(r.1+$#HISTNO.)num} $sep $cmd" )
     done
-    zformat -a list " -- " "$events[@]"
-    _wanted -2V events expl "$state_descr" compadd -ld list - \
-        "${events[@]%%:*}"
+    _wanted -2V events expl "$state_descr" compadd -ld events - \
+        "${events[@]%% *}"
   else
     _wanted events expl "$state_descr" compadd -S '' - \
         ${${history%%[=[:IFS:]]*}:#[0-9-]*} || _guard "[0-9]#" event
diff --git a/Completion/Zsh/Command/_zpty b/Completion/Zsh/Command/_zpty
index ef4ac4b..99251aa 100644
--- a/Completion/Zsh/Command/_zpty
+++ b/Completion/Zsh/Command/_zpty
@@ -1,6 +1,6 @@
 #compdef zpty
 
-local state line list names expl curcontext="$curcontext"
+local state line list names expl sep curcontext="$curcontext"
 typeset -A opt_args
 
 _arguments -C -s -S \
@@ -50,8 +50,9 @@ if [[ $state = name ]]; then
   fi
   list=( ${${(f)"$(zpty)"}#*\) } )
   names=( ${list%%:*} )
-  if zstyle -T ":completion:${curcontext}" verbose; then
-    zformat -a list ' --' ${${(f)"$(zpty)"}#*\) }
+  if zstyle -T ":completion:${curcontext}:" verbose; then
+    zstyle -s ":completion:${curcontext}:" list-separator sep || sep=--
+    zformat -a list " $sep" ${${(f)"$(zpty)"}#*\) }
     _wanted names expl 'zpty command name' compadd -d list -a names
   else
     _wanted names expl 'zpty command name' compadd -a names



Messages sorted by: Reverse Date, Date, Thread, Author