# bash shell function completion                           -*- shell-script -*-

_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

# ex: ts=4 sw=4 et filetype=sh
