2001-04-02 13:59:57 +02:00
|
|
|
#compdef perl
|
|
|
|
#
|
|
|
|
# zsh completion code for the Perl interpreter
|
|
|
|
# Adam Spiers <adam@spiers.net>
|
|
|
|
#
|
|
|
|
|
|
|
|
_perl () {
|
|
|
|
_arguments -s \
|
|
|
|
'-0-:input record separator in octal (\0, if no argument): ' \
|
|
|
|
'-a[autosplit mode with -n or -p (splits $_ into @F)]' \
|
|
|
|
"-c[check syntax only (runs BEGIN and END blocks)]" \
|
|
|
|
'-d[run scripts under debugger]' \
|
|
|
|
'-d\:-[run under control of a debugging/tracing module]:debugging/tracing module:_perl_modules' \
|
|
|
|
'-D-:set debugging flags (argument is a bit mask or flags): ' \
|
|
|
|
"*-e+:one line of script. Several -e's allowed. Omit [programfile]." \
|
|
|
|
"-F-:split() pattern for autosplit (-a). The //'s are optional.: " \
|
|
|
|
'-h[list help summary]' \
|
|
|
|
'-i-[edit <> files in place (make backup if extension supplied)]:backup file extension: ' \
|
|
|
|
'*-I-[specify @INC/#include directory (may be used more than once)]:include path:_files -/' \
|
|
|
|
'-l-[enable line ending processing, specifies line terminator]:output record separator in octal: ' \
|
|
|
|
\*{-m,-M}"-[module.. executes \`use/no module...' before executing your script.]:module:_perl_m_opt" \
|
|
|
|
"-n[assume 'while (<>) { ... }' loop around your script]" \
|
|
|
|
"-p[assume loop like -n but print line also like sed]" \
|
|
|
|
"-P[run script through C preprocessor before compilation]" \
|
|
|
|
"-s[enable some switch parsing for switches after script name]" \
|
|
|
|
"-S[look for the script using PATH environment variable]" \
|
2001-05-29 19:54:08 +02:00
|
|
|
"-T[turn on tainted checks]" \
|
2001-04-02 13:59:57 +02:00
|
|
|
"-u[dump core after parsing script]" \
|
|
|
|
"-U[allow unsafe operations]" \
|
|
|
|
"-v[print version number, patchlevel plus VERY IMPORTANT perl info]" \
|
|
|
|
"-V-[print perl configuration information]:configuration keys:_perl_config_vars" \
|
|
|
|
'-w[TURN WARNINGS ON FOR COMPILATION OF YOUR SCRIPT. Recommended.]' \
|
|
|
|
'-x-[strip off text before #!perl line and perhaps cd to directory]:directory to cd to:_files -/' \
|
2002-02-04 07:25:35 +01:00
|
|
|
'1:Perl script:_files -/ -g \*.p\[ml\]' \
|
|
|
|
'*::args: _normal'
|
2001-04-02 13:59:57 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
_perl_m_opt () {
|
|
|
|
compset -P '-'
|
|
|
|
|
|
|
|
if compset -P '*='; then
|
|
|
|
_message 'module arguments, comma separated'
|
|
|
|
else
|
|
|
|
_perl_modules -S= -q
|
|
|
|
fi
|
|
|
|
}
|
|
|
|
|
|
|
|
_perl_config_vars () {
|
|
|
|
if (( ! $+_perl_config_vars )); then
|
2001-05-29 16:35:52 +02:00
|
|
|
_perl_config_vars=( $(perl -MConfig -e 'print join("\n", keys %Config);') )
|
2001-04-02 13:59:57 +02:00
|
|
|
fi
|
|
|
|
|
|
|
|
local add_colon='-P:'
|
|
|
|
compset -P '*:' && add_colon=''
|
|
|
|
|
|
|
|
local delimiter='\ '
|
|
|
|
(( compstate[quoting] )) && delimiter=' '
|
|
|
|
|
|
|
|
compset -P '* ' && compset -q
|
|
|
|
compadd "$expl[@]" $add_colon -S$delimiter -q -a _perl_config_vars
|
|
|
|
}
|
|
|
|
|
|
|
|
_perl "$@"
|