nvim.bash (2131B)
1 #!/usr/bin/env bash 2 3 # Provides bash completion for "nvim". 4 5 if [[ -n ${BASH_COMPLETION_VERSINFO[*]} ]] \ 6 && ((BASH_COMPLETION_VERSINFO[0] > 2 || (\ 7 BASH_COMPLETION_VERSINFO[0] == 2 && BASH_COMPLETION_VERSINFO[1] >= 12))); then 8 # use bash-completion >= 2.12 9 _comp_nvim() { 10 local cur prev words cword 11 _comp_initialize -n : -- "$@" || return 12 13 case "$prev" in 14 --listen | --server) 15 _comp_compgen_filedir 16 17 if [[ "$cur" != /* ]]; then 18 _comp_compgen_ip_addresses -a 19 compopt -o nospace 20 fi 21 22 return 23 ;; 24 esac 25 26 if [[ "$cur" =~ ^- ]]; then 27 # Infers args from "nvim --help". 28 _comp_compgen_help 29 _comp_compgen -a -- -W "-c -Es -v -h" 30 31 if [[ ${#COMPREPLY[@]} -eq 1 ]]; then 32 case "${COMPREPLY-}" in 33 -o | -O | -p | -V) 34 compopt -o nospace 35 ;; 36 esac 37 fi 38 return 39 fi 40 41 _comp_compgen_filedir 42 } \ 43 && complete -F _comp_nvim nvim 44 else 45 _comp_nvim() { 46 local cur prev opts 47 COMPREPLY=() 48 cur="${COMP_WORDS[COMP_CWORD]}" 49 prev="${COMP_WORDS[COMP_CWORD - 1]}" 50 51 opts=" 52 --cmd 53 -c 54 -l 55 -S 56 -s 57 -u 58 -d 59 -es -Es 60 -h --help 61 -i 62 -n 63 -o 64 -O 65 -p 66 -R 67 -v --version 68 -V 69 -- 70 --api-info 71 --clean 72 --embed 73 --headless 74 --listen 75 --remote 76 --server 77 --startuptime 78 " 79 80 if [[ "$cur" =~ ^- ]]; then 81 # shellcheck disable=SC2207 82 COMPREPLY=($(compgen -W "$opts" -- "$cur")) 83 84 if [[ ${#COMPREPLY[@]} -eq 1 ]]; then 85 case "${COMPREPLY-}" in 86 -o | -O | -p | -V) 87 compopt -o nospace 88 ;; 89 esac 90 fi 91 return 92 fi 93 94 compopt -o default -o bashdefault 95 } \ 96 && complete -F _comp_nvim nvim 97 fi 98 99 # aliases are not expanded by default during completion. 100 for cmd in vi vim; do 101 [[ "$(alias $cmd 2> /dev/null)" == "alias $cmd='nvim'" ]] \ 102 && type -f _comp_nvim > /dev/null 2>&1 \ 103 && ! complete -p $cmd > /dev/null 2>&1 \ 104 && complete -F _comp_nvim $cmd 105 done