From 9867c4091e71e6ed69889a9bfaee07275d2fa04e Mon Sep 17 00:00:00 2001 From: Tanaka Akira Date: Thu, 19 Aug 1999 11:18:05 +0000 Subject: manual/7448 --- Completion/Builtins/_aliases | 5 ++++- Completion/Builtins/_arrays | 5 ++++- Completion/Builtins/_autoload | 5 ++++- Completion/Builtins/_bg_jobs | 5 ++++- Completion/Builtins/_bindkey | 8 ++++++-- Completion/Builtins/_builtin | 5 ++++- Completion/Builtins/_cd | 8 ++++++-- Completion/Builtins/_command | 5 ++++- Completion/Builtins/_disable | 22 +++++++++++++++++----- Completion/Builtins/_echotc | 6 +++++- Completion/Builtins/_enable | 22 +++++++++++++++++----- Completion/Builtins/_fc | 5 +++-- Completion/Builtins/_functions | 5 ++++- Completion/Builtins/_hash | 8 ++++++-- Completion/Builtins/_jobs | 5 ++++- Completion/Builtins/_kill | 11 +++++++---- Completion/Builtins/_limits | 5 ++++- Completion/Builtins/_sched | 4 ++++ Completion/Builtins/_set | 8 +++++--- Completion/Builtins/_stat | 10 +++++++--- Completion/Builtins/_trap | 8 ++++++-- Completion/Builtins/_unhash | 22 +++++++++++++++++----- Completion/Builtins/_vars_eq | 5 ++++- Completion/Builtins/_wait | 8 +++++--- Completion/Builtins/_which | 9 ++++++++- Completion/Builtins/_zftp | 19 ++++++++++++------- Completion/Builtins/_zle | 8 ++++++-- Completion/Builtins/_zmodload | 7 +++++-- 28 files changed, 182 insertions(+), 61 deletions(-) (limited to 'Completion/Builtins') 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 -- cgit 1.4.1