zsh-workers
 help / color / Atom feed
* [PATCH] _subversion: Complete multiple comma-separated arguments to --show-item=<TAB>.
@ 2019-11-08 14:22 Daniel Shahaf
  0 siblings, 0 replies; only message in thread
From: Daniel Shahaf @ 2019-11-08 14:22 UTC (permalink / raw)
  To: zsh-workers

---
 Completion/Unix/Command/_subversion | 9 +++++++--
 1 file changed, 7 insertions(+), 2 deletions(-)

diff --git a/Completion/Unix/Command/_subversion b/Completion/Unix/Command/_subversion
index 28223c55b..b5532b101 100644
--- a/Completion/Unix/Command/_subversion
+++ b/Completion/Unix/Command/_subversion
@@ -3,8 +3,9 @@
 _svn () {
   local curcontext="$curcontext" state line expl ret=1
   typeset -A opt_args
+  local i
 
-  # Colons in values must be escaped.
+  # Colons and closing square brackets in values must be escaped.
   local -A show_item_keys=(
      kind                  "the kind of TARGET (file or dir)"
      url                   "the URL of TARGET in the repository"
@@ -112,7 +113,11 @@ _svn () {
           done
           while (( idx=$args[(I)*--show-item:arg:] )); do
             # (q) to quote the parentheses in the value
-            args[idx]=( --show-item'=:item key:(('"`for i j in ${(kv)show_item_keys}; do print -rn - $i\\\\:"${(q)j}" ""; done`"'))' )
+            local -a show_items_plain_array
+            for i in ${(k)show_item_keys}; do
+              show_items_plain_array+=( $i\[${show_item_keys[$i]}\] )
+            done
+            args[idx]=( --show-item'=:item key:_values -s , "info items" ${show_items_plain_array[@]}' )
           done
           # All other options get {-x+,--long-x=}
           args=( ${args/(#b)(--[A-Za-z0-9-]##):arg:/$match[1]=:arg:} )

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, back to index

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2019-11-08 14:22 [PATCH] _subversion: Complete multiple comma-separated arguments to --show-item=<TAB> Daniel Shahaf

zsh-workers

Archives are clonable: git clone --mirror http://inbox.vuxu.org/zsh-workers

Example config snippet for mirrors

Newsgroup available over NNTP:
	nntp://inbox.vuxu.org/vuxu.archive.zsh.workers


AGPL code for this site: git clone https://public-inbox.org/public-inbox.git