diff options
author | Bart Schaefer <barts@users.sourceforge.net> | 2002-03-18 04:55:33 +0000 |
---|---|---|
committer | Bart Schaefer <barts@users.sourceforge.net> | 2002-03-18 04:55:33 +0000 |
commit | 28c052a7b71cc521ba4e9f5b48c185dd9d0bb226 (patch) | |
tree | 97bfe85cea08e900934459a47d0cf7096ce6efc8 /Completion/Unix/Command/_perl | |
parent | c2f1f5187273a190f82f33046ca4e7c7adeef1a4 (diff) | |
download | zsh-28c052a7b71cc521ba4e9f5b48c185dd9d0bb226.tar.gz zsh-28c052a7b71cc521ba4e9f5b48c185dd9d0bb226.tar.xz zsh-28c052a7b71cc521ba4e9f5b48c185dd9d0bb226.zip |
Merge 16546,16556,16820 from dev version.
Diffstat (limited to 'Completion/Unix/Command/_perl')
-rw-r--r-- | Completion/Unix/Command/_perl | 63 |
1 files changed, 63 insertions, 0 deletions
diff --git a/Completion/Unix/Command/_perl b/Completion/Unix/Command/_perl new file mode 100644 index 000000000..29016e333 --- /dev/null +++ b/Completion/Unix/Command/_perl @@ -0,0 +1,63 @@ +#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]" \ + "-T[turn on tainted checks]" \ + "-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 -/' \ + '1:Perl script:_files -/ -g \*.p\[ml\]' \ + '*::args: _normal' +} + +_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 + _perl_config_vars=( $(perl -MConfig -e 'print join("\n", keys %Config);') ) + 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 "$@" |