diff options
author | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2017-09-25 23:46:54 -0300 |
---|---|---|
committer | Gabriel F. T. Gomes <gabriel@inconstante.eti.br> | 2017-09-25 23:46:54 -0300 |
commit | 6d88f1055806932d9291f96847d2b691cccda2cd (patch) | |
tree | 0ff79eedaa8a239331256048981deedbd0721965 /completions/perl | |
parent | 059a87a5936cfebfd2d71ab8057002cafb2ea051 (diff) | |
download | bash-completion-6d88f1055806932d9291f96847d2b691cccda2cd.tar.gz |
New upstream version 2.7upstream/2.7
Diffstat (limited to 'completions/perl')
-rw-r--r-- | completions/perl | 50 |
1 files changed, 23 insertions, 27 deletions
diff --git a/completions/perl b/completions/perl index 4bcc9b02..250039ee 100644 --- a/completions/perl +++ b/completions/perl @@ -1,18 +1,11 @@ # bash completion for perl -*- shell-script -*- -_perlmodules() +_perl_helper() { COMPREPLY=( $( compgen -P "$prefix" -W \ - "$( ${1:-perl} ${BASH_SOURCE[0]%/*}/../helpers/perl modules $cur )" \ - -- "$cur" ) ) - __ltrim_colon_completions "$prefix$cur" -} - -_perlfunctions() -{ - COMPREPLY=( $( compgen -P "$prefix" -W \ - "$( ${1:-perl} ${BASH_SOURCE[0]%/*}/../helpers/perl functions $cur )" \ + "$( ${2:-perl} ${BASH_SOURCE[0]%/*}/../helpers/perl $1 $cur )" \ -- "$cur" ) ) + [[ $1 == functions ]] || __ltrim_colon_completions "$prefix$cur" } _perl() @@ -27,6 +20,10 @@ _perl() temp=$cur prev=${temp:0:2} cur=${temp:2} + if [[ $prev == -d && $cur == t* ]]; then + prev=-dt + cur=${cur:1} + fi optPrefix=-P$prev optSuffix=-S/ prefix=$prev @@ -34,20 +31,20 @@ _perl() case $prev in -D|-e|-E|-i|-F|-l) - return 0 + return ;; -I|-x) local IFS=$'\n' compopt -o filenames COMPREPLY=( $( compgen -d $optPrefix $optSuffix -- "$cur" ) ) - return 0 + return ;; -m|-M) temp="${cur#-}" prefix+="${cur%$temp}" cur="$temp" - _perlmodules $1 - return 0 + _perl_helper modules $1 + return ;; -V) if [[ $cur == :* ]]; then @@ -59,16 +56,15 @@ _perl() keys %Config::Config" 2>/dev/null )' -- "$temp" ) ) __ltrim_colon_completions "$prefix$temp" fi - return 0 + return ;; -d|-dt) if [[ $cur == :* ]]; then temp="${cur#:}" prefix="$prefix${cur%$temp}" cur="Devel::$temp" - _perlmodules $1 + _perl_helper modules $1 fi - return 0 ;; esac @@ -101,15 +97,15 @@ _perldoc() case $prev in -h|-V|-n|-o|-M|-w|-L) - return 0 + return ;; -d) _filedir - return 0 + return ;; -f) - _perlfunctions $perl - return 0 + _perl_helper functions $perl + return ;; esac @@ -118,18 +114,18 @@ _perldoc() else # return available modules (unless it is clearly a file) if [[ "$cur" != @(*/|[.~])* ]]; then - _perlmodules $perl + _perl_helper perldocs $perl if [[ $cur == p* ]]; then COMPREPLY+=( $( compgen -W \ - '$( PERLDOC_PAGER=/bin/cat "$1" -u perl | \ - sed -ne "/perl.*Perl overview/,/perlwin32/p" | \ - awk "\$NF=2 && \$1 ~ /^perl/ { print \$1 }" )' \ + '$( PERLDOC_PAGER=cat "$1" -u perl | \ + command sed -ne "/perl.*Perl overview/,/perlwin32/p" | \ + awk "\$NF=2 && \$1 ~ /^perl/ { print \$1 }" )' \ -- "$cur" ) ) fi fi - _filedir 'p@(l|m|od)' + _filedir 'p@([lm]|od)' fi } && complete -F _perldoc -o bashdefault perldoc -# ex: ts=4 sw=4 et filetype=sh +# ex: filetype=sh |