# dot(1) completion -*- shell-script -*- proc _dot { local cur prev words cword _init_completion -n := || return [[ $prev == -[V?] ]] && return match $cur { with -G*|-N*|-E*|-l?*|-q?*|-s?*|-Ln*|-LU*|-LC*|-LT* return with -T* local langs=( $( "$1" -TNON_EXISTENT 2>&1 | \ sed -ne 's/.*one of://p' ) ) setglobal COMPREPLY = ''( $( compgen -P -T -W '${langs[@]}' -- "${cur#-T}" ) ) return with -K* local layouts=( $( "$1" -KNON_EXISTENT 2>&1 | \ sed -ne 's/.*one of://p' ) ) setglobal COMPREPLY = ''( $( compgen -P -K -W '${layouts[@]}' -- "${cur#-K}" ) ) return with -o* setglobal cur = $(cur#-o) _filedir setglobal COMPREPLY = ''( $( compgen -P -o -W '${COMPREPLY[@]}' -- "$cur" ) ) return } if [[ $cur == -* ]] { setglobal 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 } _filedir dot } && complete -F _dot dot # ex: ts=4 sw=4 et filetype=sh