summaryrefslogtreecommitdiff
path: root/completions/dot
blob: 812222925a874a54ccea4c3bf314127dcc26d2f5 (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 |
                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