Blob Blame History Raw
# dot(1) completion                                        -*- shell-script -*-

_dot()
{
    local cur prev words cword
    _init_completion -n := || return

    [[ $prev == -[V?] ]] && return

    case $cur in
        -G*|-N*|-E*|-l?*|-q?*|-s?*|-Ln*|-LU*|-LC*|-LT*)
            return
            ;;
        -T*)
            local langs=( $( "$1" -TNON_EXISTENT 2>&1 | \
                command sed -ne 's/.*one of://p' ) )
            COMPREPLY=( $( compgen -P -T -W '${langs[@]}' -- "${cur#-T}" ) )
            return
            ;;
        -K*)
            local layouts=( $( "$1" -KNON_EXISTENT 2>&1 | \
                command sed -ne 's/.*one of://p' ) )
            COMPREPLY=( $( compgen -P -K -W '${layouts[@]}' -- "${cur#-K}" ) )
            return
            ;;
        -o*)
            cur=${cur#-o}
            _filedir
            COMPREPLY=( $( compgen -P -o -W '${COMPREPLY[@]}' -- "$cur" ) )
            return
            ;;
    esac

    if [[ $cur == -* ]]; then
        COMPREPLY=( $( compgen -W '-V -v -G -N -E -T -K -l -o -O -P -q -s -y -n
            -n1 -n2 -x -Lg -LO -Ln -LU -LC -LT -m -c -?' -- "$cur" ) )
        [[ $COMPREPLY == -@([GNETKo]|L[nUCT]) ]] && compopt -o nospace
        return
    fi

    _filedir dot
} &&
complete -F _dot dot

# ex: filetype=sh