contrib/completion.bash
#!/usr/bin/env bash
# bash command completion for neovim remote.
# Source that file in your bashrc to use it.

_nvr_opts_completions()
{
    local cur prev opts
    cur=${COMP_WORDS[COMP_CWORD]}
    prev=${COMP_WORDS[COMP_CWORD-1]}
    opts=(
        -h
        -cc
        -c
        -d
        -l
        -o
        -O
        -p
        -q
        -s
        -t
        --nostart
        --version
        --serverlist
        --servername
        --remote
        --remote-wait
        --remote-silent
        --remote-wait-silent
        --remote-tab
        --remote-tab-wait
        --remote-tab-silent
        --remote-tab-wait-silent
        --remote-send
        --remote-expr
    )
    case "${prev}" in
        --servername)
            srvlist=$(nvr --serverlist)
            COMPREPLY=( $(compgen -W "${srvlist}" -- "$cur") )
            return 0
            ;;
        -[oOpq])
            # These options require at least one argument.
            COMPREPLY=( $(compgen -A file -- "$cur") )
            return 0
            ;;
    esac
    if [[ "$cur" =~ ^- ]]; then
        COMPREPLY=( $(compgen -W "${opts[*]}" -- "$cur") )
    else
        COMPREPLY=( $(compgen -A file -- "$cur") )
    fi
    return 0
}

complete -o default -F _nvr_opts_completions nvr
