* 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).