diff options
Diffstat (limited to 'completions/function')
-rw-r--r-- | completions/function | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/completions/function b/completions/function new file mode 100644 index 00000000..4916b2ac --- /dev/null +++ b/completions/function @@ -0,0 +1,28 @@ +# bash shell function completion + +_function() +{ + local cur prev words cword + _init_completion || return + + if [[ $1 == @(declare|typeset) ]]; then + if [ "$prev" = -f ]; then + COMPREPLY=( $( compgen -A function -- "$cur" ) ) + elif [[ "$cur" == -* ]]; then + COMPREPLY=( $( compgen -W '-a -f -F -i -r -x -p' -- "$cur" ) ) + fi + elif [ $cword -eq 1 ]; then + COMPREPLY=( $( compgen -A function -- "$cur" ) ) + else + COMPREPLY=( "() $( type -- ${words[1]} | sed -e 1,2d )" ) + fi +} && +complete -F _function function declare typeset + +# Local variables: +# mode: shell-script +# sh-basic-offset: 4 +# sh-indent-comment: t +# indent-tabs-mode: nil +# End: +# ex: ts=4 sw=4 et filetype=sh |