summaryrefslogtreecommitdiff
path: root/completions/dot
blob: ef946e4b0fb32fa67db5d7034d73bf6f0d612633 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
# 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 | \
                sed -ne 's/.*one of://p' ) )
            COMPREPLY=( $( compgen -P -T -W '${langs[@]}' -- "${cur#-T}" ) )
            return
            ;;
        -K*)
            local layouts=( $( "$1" -KNON_EXISTENT 2>&1 | \
                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 == -@(G|N|E|T|K|o|L[nUCT]) ]] && compopt -o nospace
        return
    fi

    _filedir dot
} &&
complete -F _dot dot

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