zsh-workers
 help / color / mirror / code / Atom feed
* PATCH: compadd completion
@ 2015-07-08 10:07 Oliver Kiddle
  0 siblings, 0 replies; only message in thread
From: Oliver Kiddle @ 2015-07-08 10:07 UTC (permalink / raw)
  To: Zsh workers

This will perhaps seem rather pointless because compadd is not exactly an
interactive command but I quite often write and edit small functions on the
command-line, especially now that vi-mode is working better. Also, this is
quicker than looking at the documentation for simple cases.

Oliver

diff --git a/Completion/Zsh/Command/_compadd b/Completion/Zsh/Command/_compadd
new file mode 100644
index 0000000..eee999f
--- /dev/null
+++ b/Completion/Zsh/Command/_compadd
@@ -0,0 +1,52 @@
+#compdef compadd -P _*
+
+local curcontext="$curcontext" state line ret=1
+typeset -A opt_args
+
+_arguments -C -s -S -A "-*" \
+  '-P+[specify prefix]:prefix' \
+  '-S+[specify suffix]:suffix' \
+  '-p+[specify hidden prefix]:hidden prefix' \
+  '-s+[specify hidden suffix]:hidden suffix' \
+  '-i+[specify ignored prefix]:ignored prefix' \
+  '-I+[specify ignored suffix]:ignored suffix' \
+  '(-k)-a[matches are elements of specified arrays]' \
+  '(-a)-k[matches are keys of specified associative arrays]' \
+  '-d+[specify display strings]:array:_parameters -g "*array*"' \
+  '-l[list display strings one per line, not in columns]' \
+  '-o[order matches by display string not by match string]' \
+  '(-1 -E)-J+[specify match group]:group' \
+  '-V+[specify unsorted match group]:group' \
+  '(-J -E)-1[remove only consecutive duplicates from group]' \
+  '-2[preserve all duplicates]' \
+  '(-x)-X[specify explanation]:explanation' \
+  '(-X)-x[specify unconditional explanation]:explanation' \
+  '-q[make suffix autoremovable]' \
+  '-r+[specify character class for suffix autoremoval]:character class' \
+  '-R+[specify function for suffix autoremoval]:function:_functions' \
+  '-f[mark matches as being files]' \
+  '-e[mark matches as being parameters]' \
+  '-W[specify location for matches marked as files]' \
+  '-F+[specify array of ignore patterns]:array:_parameters -g "*array*"' \
+  '-Q[disable quoting of matchines]' \
+  '*-M[specify matching specifications]' \
+  '-n[hide matches in completion listing]' \
+  '-U[disable internal matching of completion candidates]' \
+  '-O+[populate array with matches instead of adding them]:array:_parameters -g "*array*"' \
+  '-A+[populate array with expanded matches instead of adding them]:array:_parameters -g "*array*"' \
+  '-D+[delete elements from array corresponding to non-matching candidates]:array:_parameters -g "*array*"' \
+  '-C[add special match that expands to all other matches]' \
+  '(-1 -J)-E+[add specified number of display only matches]:number' \
+  '*:candidate:->candidates' && ret=0
+
+if [[ -n $state ]]; then
+  if (( $+opt_args[-a] )); then
+    _parameters -g "*array*" && ret=0
+  elif (( $+opt_args[-k] )); then
+    _parameters -g "*assoc*" && ret=0
+  else
+    _message -e candidate candidates
+  fi
+fi
+
+return ret


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

only message in thread, other threads:[~2015-07-08 10:13 UTC | newest]

Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2015-07-08 10:07 PATCH: compadd completion Oliver Kiddle

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).