_rg() { local i cur prev opts cmds COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" prev="${COMP_WORDS[COMP_CWORD-1]}" cmd="" opts="" for i in ${COMP_WORDS[@]}; do case "${i}" in rg) cmd="rg" ;; *) ;; esac done case "${cmd}" in rg) opts="--regexp -e --file -f --after-context -A --before-context -B --binary --no-binary --block-buffered --no-block-buffered --byte-offset -b --no-byte-offset --case-sensitive -s --color --colors --column --no-column --context -C --context-separator --no-context-separator --count -c --count-matches --crlf --no-crlf --debug --dfa-size-limit --encoding -E --no-encoding --engine --field-context-separator --field-match-separator --files --files-with-matches -l --files-without-match --fixed-strings -F --no-fixed-strings --follow -L --no-follow --generate --glob -g --glob-case-insensitive --no-glob-case-insensitive --heading --no-heading --help -h --hidden -. --no-hidden --hostname-bin --hyperlink-format --iglob --ignore-case -i --ignore-file --ignore-file-case-insensitive --no-ignore-file-case-insensitive --include-zero --no-include-zero --invert-match -v --no-invert-match --json --no-json --line-buffered --no-line-buffered --line-number -n --no-line-number -N --line-regexp -x --max-columns -M --max-columns-preview --no-max-columns-preview --max-count -m --max-depth -d --max-filesize --mmap --no-mmap --multiline -U --no-multiline --multiline-dotall --no-multiline-dotall --no-config --no-ignore --ignore --no-ignore-dot --ignore-dot --no-ignore-exclude --ignore-exclude --no-ignore-files --ignore-files --no-ignore-global --ignore-global --no-ignore-messages --ignore-messages --no-ignore-parent --ignore-parent --no-ignore-vcs --ignore-vcs --no-messages --messages --no-require-git --require-git --no-unicode --unicode --null -0 --null-data --one-file-system --no-one-file-system --only-matching -o --path-separator --passthru --pcre2 -P --no-pcre2 --pcre2-version --pre --no-pre --pre-glob --pretty -p --quiet -q --regex-size-limit --replace -r --search-zip -z --no-search-zip --smart-case -S --sort --sortr --stats --no-stats --stop-on-nonmatch --text -a --no-text --threads -j --trace --trim --no-trim --type -t --type-not -T --type-add --type-clear --type-list --unrestricted -u --version -V --vimgrep --with-filename -H --no-filename -I --word-regexp -w --auto-hybrid-regex --no-auto-hybrid-regex --no-pcre2-unicode --pcre2-unicode --sort-files --no-sort-files ..." if [[ ${cur} == -* || ${COMP_CWORD} -eq 1 ]] ; then COMPREPLY=($(compgen -W "${opts}" -- "${cur}")) return 0 fi case "${prev}" in --regexp) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -e) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --file) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -f) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --after-context) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -A) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --before-context) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -B) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --binary) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-binary) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --block-buffered) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-block-buffered) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --byte-offset) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -b) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-byte-offset) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --case-sensitive) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -s) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --color) COMPREPLY=($(compgen -W "never auto always ansi" -- "${cur}")) return 0 ;; --colors) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --column) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-column) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --context) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -C) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --context-separator) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-context-separator) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --count) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -c) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --count-matches) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --crlf) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-crlf) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --debug) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --dfa-size-limit) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --encoding) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -E) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-encoding) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --engine) COMPREPLY=($(compgen -W "default pcre2 auto" -- "${cur}")) return 0 ;; --field-context-separator) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --field-match-separator) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --files) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --files-with-matches) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -l) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --files-without-match) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --fixed-strings) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -F) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-fixed-strings) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --follow) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -L) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-follow) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --generate) COMPREPLY=($(compgen -W "man complete-bash complete-zsh complete-fish complete-powershell" -- "${cur}")) return 0 ;; --glob) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -g) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --glob-case-insensitive) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-glob-case-insensitive) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --heading) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-heading) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --help) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -h) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --hidden) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -.) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-hidden) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --hostname-bin) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --hyperlink-format) COMPREPLY=($(compgen -W "default none cursor file grep+ kitty macvim textmate vscode vscode-insiders vscodium" -- "${cur}")) return 0 ;; --iglob) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-case) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -i) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-file) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-file-case-insensitive) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-file-case-insensitive) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --include-zero) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-include-zero) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --invert-match) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -v) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-invert-match) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --json) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-json) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --line-buffered) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-line-buffered) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --line-number) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -n) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-line-number) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -N) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --line-regexp) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -x) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --max-columns) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -M) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --max-columns-preview) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-max-columns-preview) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --max-count) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -m) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --max-depth) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -d) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --max-filesize) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --mmap) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-mmap) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --multiline) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -U) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-multiline) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --multiline-dotall) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-multiline-dotall) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-config) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-dot) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-dot) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-exclude) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-exclude) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-files) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-files) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-global) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-global) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-messages) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-messages) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-parent) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-parent) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-ignore-vcs) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --ignore-vcs) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-messages) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --messages) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-require-git) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --require-git) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-unicode) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --unicode) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --null) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -0) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --null-data) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --one-file-system) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-one-file-system) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --only-matching) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -o) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --path-separator) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --passthru) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pcre2) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -P) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-pcre2) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pcre2-version) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pre) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-pre) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pre-glob) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pretty) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -p) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --quiet) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -q) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --regex-size-limit) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --replace) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -r) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --search-zip) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -z) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-search-zip) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --smart-case) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -S) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --sort) COMPREPLY=($(compgen -W "none path modified accessed created" -- "${cur}")) return 0 ;; --sortr) COMPREPLY=($(compgen -W "none path modified accessed created" -- "${cur}")) return 0 ;; --stats) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-stats) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --stop-on-nonmatch) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --text) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -a) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-text) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --threads) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -j) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --trace) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --trim) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-trim) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --type) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -t) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --type-not) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -T) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --type-add) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --type-clear) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --type-list) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --unrestricted) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -u) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --version) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -V) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --vimgrep) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --with-filename) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -H) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-filename) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -I) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --word-regexp) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; -w) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --auto-hybrid-regex) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-auto-hybrid-regex) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-pcre2-unicode) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --pcre2-unicode) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --sort-files) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; --no-sort-files) COMPREPLY=($(compgen -f "${cur}")) return 0 ;; esac COMPREPLY=($(compgen -W "${opts}" -- "${cur}")) return 0 ;; esac } complete -F _rg -o bashdefault -o default rg