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