about summary refs log tree commit diff
path: root/Completion/Builtins
diff options
context:
space:
mode:
authorTanaka Akira <akr@users.sourceforge.net>1999-08-19 11:18:05 +0000
committerTanaka Akira <akr@users.sourceforge.net>1999-08-19 11:18:05 +0000
commit9867c4091e71e6ed69889a9bfaee07275d2fa04e (patch)
tree37318116ff90f7b90df7cb9e894790d96be0849b /Completion/Builtins
parent04979daf4f9b9645f22df1dfbb5974ab82294868 (diff)
downloadzsh-9867c4091e71e6ed69889a9bfaee07275d2fa04e.tar.gz
zsh-9867c4091e71e6ed69889a9bfaee07275d2fa04e.tar.xz
zsh-9867c4091e71e6ed69889a9bfaee07275d2fa04e.zip
manual/7448
Diffstat (limited to 'Completion/Builtins')
-rw-r--r--Completion/Builtins/_aliases5
-rw-r--r--Completion/Builtins/_arrays5
-rw-r--r--Completion/Builtins/_autoload5
-rw-r--r--Completion/Builtins/_bg_jobs5
-rw-r--r--Completion/Builtins/_bindkey8
-rw-r--r--Completion/Builtins/_builtin5
-rw-r--r--Completion/Builtins/_cd8
-rw-r--r--Completion/Builtins/_command5
-rw-r--r--Completion/Builtins/_disable22
-rw-r--r--Completion/Builtins/_echotc6
-rw-r--r--Completion/Builtins/_enable22
-rw-r--r--Completion/Builtins/_fc5
-rw-r--r--Completion/Builtins/_functions5
-rw-r--r--Completion/Builtins/_hash8
-rw-r--r--Completion/Builtins/_jobs5
-rw-r--r--Completion/Builtins/_kill11
-rw-r--r--Completion/Builtins/_limits5
-rw-r--r--Completion/Builtins/_sched4
-rw-r--r--Completion/Builtins/_set8
-rw-r--r--Completion/Builtins/_stat10
-rw-r--r--Completion/Builtins/_trap8
-rw-r--r--Completion/Builtins/_unhash22
-rw-r--r--Completion/Builtins/_vars_eq5
-rw-r--r--Completion/Builtins/_wait8
-rw-r--r--Completion/Builtins/_which9
-rw-r--r--Completion/Builtins/_zftp19
-rw-r--r--Completion/Builtins/_zle8
-rw-r--r--Completion/Builtins/_zmodload7
28 files changed, 182 insertions, 61 deletions
diff --git a/Completion/Builtins/_aliases b/Completion/Builtins/_aliases
index 990f43457..3e4b789b6 100644
--- a/Completion/Builtins/_aliases
+++ b/Completion/Builtins/_aliases
@@ -1,3 +1,6 @@
 #compdef alias unalias
 
-compgen -a
+local expl
+
+_description expl alias
+compgen "$expl[@]" -a
diff --git a/Completion/Builtins/_arrays b/Completion/Builtins/_arrays
index b79bf711c..20681f527 100644
--- a/Completion/Builtins/_arrays
+++ b/Completion/Builtins/_arrays
@@ -1,3 +1,6 @@
 #compdef shift
 
-compgen -A
+local expl
+
+_description expl array
+compgen "$expl[@]" -A
diff --git a/Completion/Builtins/_autoload b/Completion/Builtins/_autoload
index f10fc34e7..4a97b2aec 100644
--- a/Completion/Builtins/_autoload
+++ b/Completion/Builtins/_autoload
@@ -1,3 +1,6 @@
 #compdef autoload
 
-compadd - ${^fpath}/*(N:t)
+local expl
+
+_description expl 'shell function'
+compadd "$expl[@]" - ${^fpath}/*(N:t)
diff --git a/Completion/Builtins/_bg_jobs b/Completion/Builtins/_bg_jobs
index ef1cd4d3c..65f21b483 100644
--- a/Completion/Builtins/_bg_jobs
+++ b/Completion/Builtins/_bg_jobs
@@ -1,3 +1,6 @@
 #compdef bg
 
-compgen -z -P '%'
+local expl
+
+_description expl 'suspended job'
+compgen "$expl[@]" -z -P '%'
diff --git a/Completion/Builtins/_bindkey b/Completion/Builtins/_bindkey
index 91ecfcc28..891e2cedb 100644
--- a/Completion/Builtins/_bindkey
+++ b/Completion/Builtins/_bindkey
@@ -7,8 +7,12 @@
 #
 # Where appropriate, will complete keymaps instead of widgets.
 
+local expl
+
 if [[ "$words[2]" = -*[DAN]* || "$words[CURRENT-1]" = -*M ]]; then
-  compadd - $(bindkey -l)
+  _description expl keymap
+  compadd "$expl[@]" - $(bindkey -l)
 else
-  compgen -b -M 'r:|-=* r:|=*'
+  _description expl widget
+  compgen "$expl[@]" -b -M 'r:|-=* r:|=*'
 fi
diff --git a/Completion/Builtins/_builtin b/Completion/Builtins/_builtin
index 0e6d613be..f925b88a8 100644
--- a/Completion/Builtins/_builtin
+++ b/Completion/Builtins/_builtin
@@ -5,5 +5,8 @@ if (( $CURRENT > 2 )); then
   (( CURRENT -- ))
   _normal
 else
-  compgen -eB
+  local expl
+
+  _description expl 'builtin command'
+  compgen "$expl[@]" -eB
 fi
diff --git a/Completion/Builtins/_cd b/Completion/Builtins/_cd
index 9ac29b8f8..92a14ec31 100644
--- a/Completion/Builtins/_cd
+++ b/Completion/Builtins/_cd
@@ -14,6 +14,8 @@
 emulate -L zsh
 setopt extendedglob nonomatch
 
+local expl
+
 if [[ CURRENT -eq 3 ]]; then
   # cd old new: look for old in $PWD and see what can replace it
   local rep
@@ -21,7 +23,8 @@ if [[ CURRENT -eq 3 ]]; then
   rep=(${~PWD/$words[2]/*}~$PWD(-/N))
   # Now remove all the common parts of $PWD and the completions from this
   rep=(${${rep#${PWD%%$words[2]*}}%${PWD#*$words[2]}})
-  (( ! $#rep )) || compadd $rep
+  _description expl replacement
+  (( ! $#rep )) || compadd "$expl[@]" $rep
 elif [[ $PREFIX = [-+]* ]]; then
   # pushd: just complete the numbers, but show the full directory list with
   # numbers.
@@ -50,7 +53,8 @@ elif [[ $PREFIX = [-+]* ]]; then
   lines="${(F)list}"
   # get the array of numbers only
   list=(${list%%[ 	]*})
-  compgen -y '$lines' -Q -k list && ret=0
+  _description expl 'directory stack index'
+  compgen "$expl[@]" -y '$lines' -Q -k list && ret=0
   [[ -z $compstate[list] ]] && compstate[list]=list && ret=0
   [[ -n $compstate[insert] ]] && compstate[insert]=menu && ret=0
 
diff --git a/Completion/Builtins/_command b/Completion/Builtins/_command
index 6103ee81f..4ae274f1f 100644
--- a/Completion/Builtins/_command
+++ b/Completion/Builtins/_command
@@ -4,5 +4,8 @@ if [[ CURRENT -ge 3 ]]; then
   compset -n 2
   _normal
 else
-  compgen -em
+  local expl
+
+  _description expl command
+  compgen "$expl[@]" -em
 fi
diff --git a/Completion/Builtins/_disable b/Completion/Builtins/_disable
index 5572fbcf3..b219f4b7e 100644
--- a/Completion/Builtins/_disable
+++ b/Completion/Builtins/_disable
@@ -1,10 +1,22 @@
 #compdef disable
 
-local prev="$words[CURRENT-1]" ret=1
+local prev="$words[CURRENT-1]" ret=1 expl
 
-[[ "$prev" = -*a* ]] && compgen -ea && ret=0
-[[ "$prev" = -*f* ]] && compgen -eF && ret=0
-[[ "$prev" = -*r* ]] && compgen -ew && ret=0
-[[ "$prev" != -* ]]  && compgen -eB && ret=0
+if [[ "$prev" = -*a* ]]; then
+  _description expl alias
+  compgen "$expl[@]" -ea && ret=0
+fi
+if [[ "$prev" = -*f* ]]; then
+  _description expl 'shell function'
+  compgen "$expl[@]" -eF && ret=0
+fi
+if [[ "$prev" = -*r* ]]; then
+  _description expl 'reserved word'
+  compgen "$expl[@]" -ew && ret=0
+fi
+if [[ "$prev" != -* ]]; then
+  _description expl 'builtin command'
+  compgen "$expl[@]" -eB && ret=0
+fi
 
 return ret
diff --git a/Completion/Builtins/_echotc b/Completion/Builtins/_echotc
index 15dfcef08..46bf38261 100644
--- a/Completion/Builtins/_echotc
+++ b/Completion/Builtins/_echotc
@@ -1,3 +1,7 @@
 #compdef echotc
 
-compadd al dc dl do le up al bl cd ce cl cr dc dl do ho is le ma nd nl se so up
+local expl
+
+_description expl 'terminal capability'
+compadd "$expl[@]" \
+        al dc dl do le up al bl cd ce cl cr dc dl do ho is le ma nd nl se so up
diff --git a/Completion/Builtins/_enable b/Completion/Builtins/_enable
index 483661efe..a698a3895 100644
--- a/Completion/Builtins/_enable
+++ b/Completion/Builtins/_enable
@@ -1,10 +1,22 @@
 #compdef enable
 
-local prev="$words[CURRENT-1]" ret=1
+local prev="$words[CURRENT-1]" ret=1 expl
 
-[[ "$prev" = -*a* ]] && compgen -da && ret=0
-[[ "$prev" = -*f* ]] && compgen -dF && ret=0
-[[ "$prev" = -*r* ]] && compgen -dw && ret=0
-[[ "$prev" != -* ]]  && compgen -dB && ret=0
+if [[ "$prev" = -*a* ]]; then
+  _description expl alias
+  compgen "$expl[@]" -da && ret=0
+fi
+if [[ "$prev" = -*f* ]]; then
+  _description expl 'shell function'
+  compgen "$expl[@]" -dF && ret=0
+fi
+if [[ "$prev" = -*r* ]]; then
+  _description expl 'reserved word'
+  compgen "$expl[@]" -dw && ret=0
+fi
+if [[ "$prev" != -* ]]; then
+  _description expl 'builtin command'
+  compgen "$expl[@]" -dB && ret=0
+fi
 
 return ret
diff --git a/Completion/Builtins/_fc b/Completion/Builtins/_fc
index 5b493dc3b..8d5c82763 100644
--- a/Completion/Builtins/_fc
+++ b/Completion/Builtins/_fc
@@ -1,9 +1,10 @@
 #compdef fc
 
-local prev="$words[CURRENT-1]"
+local prev="$words[CURRENT-1]" expl
 
 if [[ "$prev" = -*e ]]; then
-  compgen -c
+  _description expl command
+  compgen "$expl[@]" -c
 elif [[ "$prev" = -[ARWI]## ]]; then
   _files
 fi
diff --git a/Completion/Builtins/_functions b/Completion/Builtins/_functions
index 52c37952b..7aa30b7bc 100644
--- a/Completion/Builtins/_functions
+++ b/Completion/Builtins/_functions
@@ -1,3 +1,6 @@
 #compdef functions unfunction
 
-compgen -F
+local expl
+
+_description expl 'shell function'
+compgen "$expl[@]" -F
diff --git a/Completion/Builtins/_hash b/Completion/Builtins/_hash
index b03cf7fb9..c8169c590 100644
--- a/Completion/Builtins/_hash
+++ b/Completion/Builtins/_hash
@@ -1,13 +1,17 @@
 #compdef hash
 
+local expl
+
 if [[ "$words[2]" = -*d* ]]; then
   if compset -P 1 '*\='; then
     _path_files -g '*(-/)'
   else
-    compgen -n -q -S '='
+    _description expl 'named directory'
+    compgen "$expl[@]" -n -q -S '='
   fi
 elif compset -P 1 '*\='; then
   _files -/g '*(*)'
 else
-  compgen -m -q -S '='
+  _description expl command
+  compgen "$expl[@]" -m -q -S '='
 fi
diff --git a/Completion/Builtins/_jobs b/Completion/Builtins/_jobs
index 9e2da24c6..b1ff31b4a 100644
--- a/Completion/Builtins/_jobs
+++ b/Completion/Builtins/_jobs
@@ -1,3 +1,6 @@
 #compdef disown fg jobs
 
-compgen -j -P '%'
+local expl
+
+_description expl job
+compgen "$expl[@]" -j -P '%'
diff --git a/Completion/Builtins/_kill b/Completion/Builtins/_kill
index 26f6bf5cd..264253e0a 100644
--- a/Completion/Builtins/_kill
+++ b/Completion/Builtins/_kill
@@ -1,15 +1,18 @@
 #compdef kill
 
-local list
+local list expl
 
 if compset -P 1 -; then
-  compadd $signals[1,-3]
+  _description expl signal
+  compadd "$expl[@]" $signals[1,-3]
 else
   local ret=1
 
-  compgen -P '%' -j && ret=0
+  _description expl job
+  compgen "$expl[@]" -P '%' -j && ret=0
   list=("${(@Mr:COLUMNS-1:)${(f)$(ps ${compconfig[ps_listargs]:-$compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ 	]#${PREFIX}[0-9]#${SUFFIX}[ 	]*}")
-  compadd -y list - ${${${(f)"$(ps $compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} &&
+  _description expl 'process ID'
+  compadd "$expl[@]" -y list - ${${${(f)"$(ps $compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} &&
     ret=0
 
   return ret
diff --git a/Completion/Builtins/_limits b/Completion/Builtins/_limits
index 0b8837d67..0072438c3 100644
--- a/Completion/Builtins/_limits
+++ b/Completion/Builtins/_limits
@@ -1,3 +1,6 @@
 #compdef limit unlimit
 
-compadd ${${(f)"$(limit)"}%% *}
+local expl
+
+_description expl 'process limits'
+compadd "$expl[@]" ${${(f)"$(limit)"}%% *}
diff --git a/Completion/Builtins/_sched b/Completion/Builtins/_sched
index 581438b0e..83aa744ce 100644
--- a/Completion/Builtins/_sched
+++ b/Completion/Builtins/_sched
@@ -1,3 +1,7 @@
 #compdef sched
 
+if [[ CURRENT -eq 2 ]]; then
+  _message 'time specification'
+  return 1
+fi
 compset -n 3 && _normal
diff --git a/Completion/Builtins/_set b/Completion/Builtins/_set
index 59a38b654..297a15d3b 100644
--- a/Completion/Builtins/_set
+++ b/Completion/Builtins/_set
@@ -1,9 +1,11 @@
 #compdef set
 
-local prev="$words[CURRENT-1]"
+local prev="$words[CURRENT-1]" expl
 
 if [[ "$prev" = [-+]o ]]; then
-  compgen -o
+  _description expl 'zsh option'
+  compgen "$expl[@]" -o
 elif [[ "$prev" = -A ]]; then
-  compgen -A
+  _description expl array
+  compgen "$expl[@]" -A
 fi
diff --git a/Completion/Builtins/_stat b/Completion/Builtins/_stat
index 3cdbb2618..5a39e56e5 100644
--- a/Completion/Builtins/_stat
+++ b/Completion/Builtins/_stat
@@ -1,10 +1,14 @@
 #compdef stat
 
+local expl
+
 if [[ "$words[CURRENT-1]" = -[AH] ]]; then
-  compgen -A
+  _description expl array
+  compgen "$expl[@]" -A
 else
+  _description expl 'inode element'
   [[ "$PREFIX[1]" = + ]] &&
-      compadd - +device +inode +mode +nlink +uid +gid +rdev +size \
-                +atime +mtime +ctime +blksize +block +link
+      compadd "$expl[@]" - +device +inode +mode +nlink +uid +gid +rdev +size \
+                           +atime +mtime +ctime +blksize +block +link
   _files
 fi
diff --git a/Completion/Builtins/_trap b/Completion/Builtins/_trap
index bb0630638..d6fc7b388 100644
--- a/Completion/Builtins/_trap
+++ b/Completion/Builtins/_trap
@@ -1,7 +1,11 @@
 #compdef trap
 
+local expl
+
 if [[ CURRENT -eq 2 ]]; then
-  compgen -c
+  _description expl command
+  compgen "$expl[@]" -c
 else
-  compgen -k signals
+  _description expl signal
+  compgen "$expl[@]" -k signals
 fi
diff --git a/Completion/Builtins/_unhash b/Completion/Builtins/_unhash
index 825c130b2..eb1787936 100644
--- a/Completion/Builtins/_unhash
+++ b/Completion/Builtins/_unhash
@@ -1,10 +1,22 @@
 #compdef unhash
 
-local fl="$words[2]" ret=1
+local fl="$words[2]" ret=1 expl
 
-[[ "$fl" = -*d* ]] && compgen -n && ret=0
-[[ "$fl" = -*a* ]] && compgen -a && ret=0
-[[ "$fl" = -*f* ]] && compgen -F && ret=0
-[[ "$fl" != -* ]]  && compgen -m && ret=0
+if [[ "$fl" = -*d* ]]; then
+  _description expl 'named directory'
+  compgen "$expl[@]" -n && ret=0
+fi
+if [[ "$fl" = -*a* ]]; then
+  _description expl alias
+  compgen "$expl[@]" -a && ret=0
+fi
+if [[ "$fl" = -*f* ]]; then
+  _description expl 'shell function'
+  compgen "$expl[@]" -F && ret=0
+fi
+if [[ "$fl" != -* ]]; then
+  _description expl command
+  compgen "$expl[@]" -m && ret=0
+fi
 
 return ret
diff --git a/Completion/Builtins/_vars_eq b/Completion/Builtins/_vars_eq
index 892c1f57e..16a55595e 100644
--- a/Completion/Builtins/_vars_eq
+++ b/Completion/Builtins/_vars_eq
@@ -1,3 +1,6 @@
 #compdef declare export integer local readonly typeset
 
-compgen -v -q -S '='
+local expl
+
+_description expl parameter
+compgen "$expl[@]" -v -q -S '='
diff --git a/Completion/Builtins/_wait b/Completion/Builtins/_wait
index 8f9339ebd..bcd39963f 100644
--- a/Completion/Builtins/_wait
+++ b/Completion/Builtins/_wait
@@ -11,10 +11,12 @@
 #    options for the ps command that are to be used when creating
 #    the list to display during completion.
 
-local list ret=1
+local list ret=1 expl
 
-compgen -P '%' -j && ret=0
+_description expl job
+compgen "$expl[@]" -P '%' -j && ret=0
 list=("${(@Mr:COLUMNS-1:)${(f)$(ps ${compconfig[ps_listargs]:-$compconfig[ps_args]} 2>/dev/null)}[2,-1]:#[ 	]#${PREFIX}[0-9]#${SUFFIX}[ 	]*}")
-compadd -y list - ${${${(f)"$(ps $compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && ret=0
+_description expl 'process ID'
+compadd "$expl[@]" -y list - ${${${(f)"$(ps $compconfig[ps_args] 2>/dev/null)"}[2,-1]## #}%% *} && ret=0
 
 return ret
diff --git a/Completion/Builtins/_which b/Completion/Builtins/_which
index db5271653..d67af7316 100644
--- a/Completion/Builtins/_which
+++ b/Completion/Builtins/_which
@@ -1,3 +1,10 @@
 #compdef which whence where type
 
-compgen -caF
+local expl
+
+_description expl command
+compgen "$expl[@]" -c
+_description expl alias
+compgen "$expl[@]" -a
+_description expl 'shell function'
+compgen "$expl[@]" -F
diff --git a/Completion/Builtins/_zftp b/Completion/Builtins/_zftp
index 32d32c2b7..e6f7ea683 100644
--- a/Completion/Builtins/_zftp
+++ b/Completion/Builtins/_zftp
@@ -7,11 +7,12 @@ _compskip=all
 # zfcd_match and zfget_match (used for old-style completion)
 # need to be installed for remote file and directory completion to work.
 
-local subcom
+local subcom expl
 
 if [[ $words[1] = zftp ]]; then
   if [[ $CURRENT -eq 2 ]]; then
-    compadd open params user login type ascii binary mode put \
+    _description expl sub-command
+    compadd "$expl[@]" open params user login type ascii binary mode put \
       putat get getat append appendat ls dir local remote mkdir rmdir
     return
   fi
@@ -24,13 +25,15 @@ case $subcom in
   *(cd|ls|dir))
    # complete remote directories; we could be smarter about hiding prefixes
    zfcd_match $PREFIX $SUFFIX
-   (( $#reply )) && compadd -S/ -q - $reply
+   _description expl 'remote directory'
+   (( $#reply )) && compadd "$expl[@]" -S/ -q - $reply
    ;;
 
   *(get(|at)|gcp|delete|remote))
    # complete remote files
    zfget_match $PREFIX $SUFFIX
-   (( $#reply )) && compadd -F fignore - $reply
+   _description expl 'remote file'
+   (( $#reply )) && compadd "$expl[@]" -F fignore - $reply
    ;;
 
   *(put(|at)|pcp))
@@ -40,18 +43,20 @@ case $subcom in
 
   *(open|anon|params))
   # complete hosts:  should do cleverer stuff with user names
-  compgen -k hosts
+  _description expl host
+  compgen "$expl[@]" -k hosts
   ;;
 
   *(goto|mark))
   # complete bookmarks.  First decide if ncftp mode is go.
+  _description expl bookmark
   if [[ $words[2] = -*n* ]]; then
     if [[ -f ~/.ncftp/bookmarks ]]; then
-      compadd - $(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)
+      compadd "$expl[@]" - $(awk -F, 'NR > 2 { print $1 }' ~/.ncftp/bookmarks)
     fi
   else
     if [[ -f ${ZFTP_BMFILE:=${ZDOTDIR:-$HOME}/.zfbkmarks} ]]; then
-      compadd - $(awk '{print $1}' $ZFTP_BMFILE)
+      compadd "$expl[@]" - $(awk '{print $1}' $ZFTP_BMFILE)
     fi
   fi
   ;;
diff --git a/Completion/Builtins/_zle b/Completion/Builtins/_zle
index f0860c5e3..06e8fcad3 100644
--- a/Completion/Builtins/_zle
+++ b/Completion/Builtins/_zle
@@ -1,7 +1,11 @@
 #compdef zle
 
+local expl
+
 if [[ "$words[2]" = -N && CURRENT -eq 3 ]]; then
-  compgen -F
+  _description expl 'widget shell function'
+  compgen "$expl[@]" -F
 else
-  compgen -b
+  _description expl widget
+  compgen "$expl[@]" -b
 fi
diff --git a/Completion/Builtins/_zmodload b/Completion/Builtins/_zmodload
index d3a39b5de..9bac1484e 100644
--- a/Completion/Builtins/_zmodload
+++ b/Completion/Builtins/_zmodload
@@ -1,11 +1,14 @@
 #compdef zmodload
 
-local fl="$words[2]"
+local fl="$words[2]" expl
 
 if [[ "$fl" = -*(a*u|u*a)* || "$fl" = -*a* && CURRENT -ge 4 ]]; then
-  compgen -B
+  _description expl 'builtin command'
+  compgen "$expl[@]" -B
 elif [[ "$fl" = -*u* ]]; then
+  _description expl module
   compadd - $(zmodload)
 else
+  _description expl 'module file'
   compadd - ${^module_path}/*(N:t:r)
 fi