1
0
mirror of git://git.code.sf.net/p/zsh/code synced 2024-10-02 00:41:44 +02:00
zsh/Completion/Unix/Command/_perldoc
Oliver Kiddle 0ba8ae87ea 21315: make completion functions give precendence to descriptions passed as
parameters and cleanup descriptons in calling functions
2005-06-08 12:45:24 +00:00

60 lines
1.9 KiB
Plaintext

#compdef perldoc -value-,PERLDOC,-default-
local curcontext="$curcontext" state line expl args ret=1
typeset -A opt_args
args=( '*:Perl pod pages:->perl-pods' )
if [[ $service = *PERLDOC* ]]; then
compset -q
words=( fake "$words[@]" )
(( CURRENT++ ))
args=()
fi
_arguments -C -s -S -A "-*" \
'(- *)-h[print help information]' \
'(- *)-V[display version information]' \
'-v[verbose output]' \
'-t[use plain text output instead of nroff]' \
'-u[show raw Pod source]' \
'*-m[display entire module]:module:_perl_modules' \
'-l[display only filename of the module found]' \
'-F[consider arguments as filenames]' \
'(-q)-f+[view documentation for Perl built-in function]:perl builtin function:->perl-builtin-funcs' \
'(-f)-q+[search question headings in Perl FAQ]:regular expression' \
'(-d)-T[send output direct to stdout and not via pager]' \
'(-T)-d+[specify output file]:output file:_files' \
'-o+[specify output format]:output format:(man nroff pod rtf text tk xml latex)' \
'-M[specifies module to use for formatting]:module:_perl_modules' \
'-w[specify option to formatter]:option' \
'-X[use an index if present]' \
'-n+[specify replacement for nroff]:nroff replacement:_command_names -e' \
'-r[recursive search]' \
'-i[ignore case]' \
"$args[@]" && ret=0
case $state in
perl-builtin-funcs)
: ${(A)_perl_builtin_funcs:=${(u)${${(M)${(f)"$(_call_program functions \
perldoc -u perlfunc 2>/dev/null)"}:#\=item [a-z]*}#* }%%[^a-z]*}}
_wanted functions expl 'perl built-in function' compadd "$@" -a - \
_perl_builtin_funcs && ret=0
;;
perl-pods)
if (( $+opt_args[-F] )); then
_wanted files expl 'Perl modules and .pods' \
_files -g "*.(pod|pm)(-.)" && ret=0
else
_alternative \
'modules:module: _perl_modules' \
'pods:base pod: _perl_basepods' \
'files:module or .pod file:_files -g "*.(pod|pm)(-.)"' && ret=0
fi
;;
esac
return ret