diff options
-rw-r--r-- | Completion/Unix/Type/_perl_basepods | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/Completion/Unix/Type/_perl_basepods b/Completion/Unix/Type/_perl_basepods new file mode 100644 index 000000000..5c8034a96 --- /dev/null +++ b/Completion/Unix/Type/_perl_basepods @@ -0,0 +1,32 @@ +#autoload +# +# _perl_basepods - zsh completion function +# +# Adam Spiers <adam@spiers.net> +# +# Calculate all installed Perl base pods (perlfunc, perlfaq etc.). +# The result is cached for future use. +# + +if [[ ${+_perl_basepods} -eq 0 ]]; then + typeset -agU _perl_basepods + + if (( ${+commands[basepods]} )); then + _perl_basepods=( ${$(basepods):t:r} ) + else + local podpath + + podpath=$(perl -MConfig -e 'print "$Config{installprivlib}/pod"') + + if [[ ! -e $podpath/perl.pod ]]; then + echo "Couldn't find perl.pod from Config.pm; giving up." + return 1 + else + _perl_basepods=( ${podpath}/*.pod(:r:t) ) + fi + fi +fi + +local expl + +_wanted pods expl 'Perl base pods' compadd -a _perl_basepods |