summaryrefslogtreecommitdiffstats
path: root/completions/dot
blob: dcb84369b28abbaa8418dac87c6f6fbc5720438a (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
46
# dot(1) completion                                        -*- shell-script -*-

_comp_cmd_dot()
{
    local cur prev words cword comp_args
    _comp_initialize -n := -- "$@" || return

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

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

    if [[ $cur == -* ]]; then
        _comp_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 -?'
        [[ ${COMPREPLY-} == -@([GNETKo]|L[nUCT]) ]] && compopt -o nospace
        return
    fi

    _comp_compgen_filedir '@(gv|dot)'
} &&
    complete -F _comp_cmd_dot dot

# ex: filetype=sh