diff options
Diffstat (limited to 'shell/completion.bash')
| -rw-r--r-- | shell/completion.bash | 145 |
1 files changed, 73 insertions, 72 deletions
diff --git a/shell/completion.bash b/shell/completion.bash index e41feb9f..c30c47bf 100644 --- a/shell/completion.bash +++ b/shell/completion.bash @@ -48,10 +48,10 @@ __fzf_exec_awk() { __fzf_awk=awk if [[ $OSTYPE == solaris* && -x /usr/xpg4/bin/awk ]]; then __fzf_awk=/usr/xpg4/bin/awk - elif command -v mawk >/dev/null 2>&1; then + elif command -v mawk > /dev/null 2>&1; then local n x y z d IFS=' .' read -r n x y z d <<< $(command mawk -W version 2> /dev/null) - [[ $n == mawk ]] && (( d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004 )) && __fzf_awk=mawk + [[ $n == mawk ]] && ((d >= 20230302 && (x * 1000 + y) * 1000 + z >= 1003004)) && __fzf_awk=mawk fi fi LC_ALL=C exec "$__fzf_awk" "$@" @@ -59,9 +59,9 @@ __fzf_exec_awk() { #----END INCLUDE __fzf_comprun() { - if [[ "$(type -t _fzf_comprun 2>&1)" = function ]]; then + if [[ "$(type -t _fzf_comprun 2>&1)" == function ]]; then _fzf_comprun "$@" - elif [[ -n "${TMUX_PANE-}" ]] && { [[ "${FZF_TMUX:-0}" != 0 ]] || [[ -n "${FZF_TMUX_OPTS-}" ]]; }; then + elif [[ -n ${TMUX_PANE-} ]] && { [[ ${FZF_TMUX:-0} != 0 ]] || [[ -n ${FZF_TMUX_OPTS-} ]]; }; then shift fzf-tmux ${FZF_TMUX_OPTS:--d${FZF_TMUX_HEIGHT:-40%}} -- "$@" else @@ -73,13 +73,13 @@ __fzf_comprun() { __fzf_orig_completion() { local l comp f cmd while read -r l; do - if [[ "$l" =~ ^(.*\ -F)\ *([^ ]*).*\ ([^ ]*)$ ]]; then + if [[ $l =~ ^(.*\ -F)\ *([^ ]*).*\ ([^ ]*)$ ]]; then comp="${BASH_REMATCH[1]}" f="${BASH_REMATCH[2]}" cmd="${BASH_REMATCH[3]}" - [[ "$f" = _fzf_* ]] && continue + [[ $f == _fzf_* ]] && continue printf -v "_fzf_orig_completion_${cmd//[^A-Za-z0-9_]/_}" "%s" "${comp} %s ${cmd} #${f}" - if [[ "$l" = *" -o nospace "* ]] && [[ ! "${__fzf_nospace_commands-}" = *" $cmd "* ]]; then + if [[ $l == *" -o nospace "* ]] && [[ ${__fzf_nospace_commands-} != *" $cmd "* ]]; then __fzf_nospace_commands="${__fzf_nospace_commands-} $cmd " fi fi @@ -115,7 +115,7 @@ _fzf_opts_completion() { local cur prev opts COMPREPLY=() cur="${COMP_WORDS[COMP_CWORD]}" - prev="${COMP_WORDS[COMP_CWORD-1]}" + prev="${COMP_WORDS[COMP_CWORD - 1]}" opts=" +c --no-color +i --no-ignore-case @@ -198,28 +198,28 @@ _fzf_opts_completion() { --" case "${prev}" in - --scheme) - COMPREPLY=( $(compgen -W "default path history" -- "$cur") ) - return 0 - ;; - --tiebreak) - COMPREPLY=( $(compgen -W "length chunk begin end index" -- "$cur") ) - return 0 - ;; - --color) - COMPREPLY=( $(compgen -W "dark light 16 bw no" -- "$cur") ) - return 0 - ;; - --layout) - COMPREPLY=( $(compgen -W "default reverse reverse-list" -- "$cur") ) - return 0 - ;; - --info) - COMPREPLY=( $(compgen -W "default right hidden inline inline-right" -- "$cur") ) - return 0 - ;; - --preview-window) - COMPREPLY=( $(compgen -W " + --scheme) + COMPREPLY=($(compgen -W "default path history" -- "$cur")) + return 0 + ;; + --tiebreak) + COMPREPLY=($(compgen -W "length chunk begin end index" -- "$cur")) + return 0 + ;; + --color) + COMPREPLY=($(compgen -W "dark light 16 bw no" -- "$cur")) + return 0 + ;; + --layout) + COMPREPLY=($(compgen -W "default reverse reverse-list" -- "$cur")) + return 0 + ;; + --info) + COMPREPLY=($(compgen -W "default right hidden inline inline-right" -- "$cur")) + return 0 + ;; + --preview-window) + COMPREPLY=($(compgen -W " default hidden nohidden @@ -245,21 +245,21 @@ _fzf_opts_completion() { border-left border-right follow - nofollow" -- "$cur") ) - return 0 - ;; - --border) - COMPREPLY=( $(compgen -W "rounded sharp bold block thinblock double horizontal vertical top bottom left right none" -- "$cur") ) - return 0 - ;; - --border-label-pos|--preview-label-pos) - COMPREPLY=( $(compgen -W "center bottom top" -- "$cur") ) - return 0 - ;; + nofollow" -- "$cur")) + return 0 + ;; + --border) + COMPREPLY=($(compgen -W "rounded sharp bold block thinblock double horizontal vertical top bottom left right none" -- "$cur")) + return 0 + ;; + --border-label-pos | --preview-label-pos) + COMPREPLY=($(compgen -W "center bottom top" -- "$cur")) + return 0 + ;; esac - if [[ "$cur" =~ ^-|\+ ]]; then - COMPREPLY=( $(compgen -W "${opts}" -- "$cur") ) + if [[ $cur =~ ^-|\+ ]]; then + COMPREPLY=($(compgen -W "${opts}" -- "$cur")) return 0 fi @@ -273,7 +273,7 @@ _fzf_handle_dynamic_completion() { orig_cmd="$1" if __fzf_orig_completion_get_orig_func "$cmd"; then "$REPLY" "$@" - elif [[ -n "${_fzf_completion_loader-}" ]]; then + elif [[ -n ${_fzf_completion_loader-} ]]; then orig_complete=$(complete -p "$orig_cmd" 2> /dev/null) $_fzf_completion_loader "$@" ret=$? @@ -287,7 +287,7 @@ _fzf_handle_dynamic_completion() { __fzf_orig_completion_instantiate "$cmd" "${BASH_REMATCH[1]}" && orig_complete=$REPLY - if [[ "${__fzf_nospace_commands-}" = *" $orig_cmd "* ]]; then + if [[ ${__fzf_nospace_commands-} == *" $orig_cmd "* ]]; then eval "${orig_complete/ -F / -o nospace -F }" else eval "$orig_complete" @@ -307,18 +307,18 @@ __fzf_generic_path_completion() { COMPREPLY=() trigger=${FZF_COMPLETION_TRIGGER-'**'} [[ $COMP_CWORD -ge 0 ]] && cur="${COMP_WORDS[COMP_CWORD]}" - if [[ "$cur" == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *':='* ]] && [[ $cur != *'`'* ]]; then + if [[ $cur == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *':='* ]] && [[ $cur != *'`'* ]]; then base=${cur:0:${#cur}-${#trigger}} eval "base=$base" 2> /dev/null || return dir= - [[ $base = *"/"* ]] && dir="$base" + [[ $base == *"/"* ]] && dir="$base" while true; do - if [[ -z "$dir" ]] || [[ -d "$dir" ]]; then - leftover=${base/#"$dir"} - leftover=${leftover/#\/} - [[ -z "$dir" ]] && dir='.' - [[ "$dir" != "/" ]] && dir="${dir/%\//}" + if [[ -z $dir ]] || [[ -d $dir ]]; then + leftover=${base/#"$dir"/} + leftover=${leftover/#\//} + [[ -z $dir ]] && dir='.' + [[ $dir != "/" ]] && dir="${dir/%\//}" matches=$( export FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --scheme=path" "${FZF_COMPLETION_OPTS-} $2") unset FZF_DEFAULT_COMMAND FZF_DEFAULT_OPTS_FILE @@ -338,11 +338,11 @@ __fzf_generic_path_completion() { done ) matches=${matches% } - [[ -z "$3" ]] && [[ "${__fzf_nospace_commands-}" = *" ${COMP_WORDS[0]} "* ]] && matches="$matches " - if [[ -n "$matches" ]]; then - COMPREPLY=( "$matches" ) + [[ -z $3 ]] && [[ ${__fzf_nospace_commands-} == *" ${COMP_WORDS[0]} "* ]] && matches="$matches " + if [[ -n $matches ]]; then + COMPREPLY=("$matches") else - COMPREPLY=( "$cur" ) + COMPREPLY=("$cur") fi # To redraw line after fzf closes (printf '\e[5n') bind '"\e[0n": redraw-current-line' 2> /dev/null @@ -350,7 +350,7 @@ __fzf_generic_path_completion() { return 0 fi dir=$(command dirname "$dir") - [[ "$dir" =~ /$ ]] || dir="$dir"/ + [[ $dir =~ /$ ]] || dir="$dir"/ done else shift @@ -366,15 +366,15 @@ _fzf_complete() { args=("$@") sep= for i in "${!args[@]}"; do - if [[ "${args[$i]}" = -- ]]; then + if [[ ${args[$i]} == -- ]]; then sep=$i break fi done - if [[ -n "$sep" ]]; then + if [[ -n $sep ]]; then str_arg= rest=("${args[@]:$((sep + 1)):${#args[@]}}") - args=("${args[@]:0:$sep}") + args=("${args[@]:0:sep}") else str_arg=$1 args=() @@ -389,15 +389,16 @@ _fzf_complete() { trigger=${FZF_COMPLETION_TRIGGER-'**'} cmd="${COMP_WORDS[0]}" cur="${COMP_WORDS[COMP_CWORD]}" - if [[ "$cur" == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *':='* ]] && [[ $cur != *'`'* ]]; then + if [[ $cur == *"$trigger" ]] && [[ $cur != *'$('* ]] && [[ $cur != *':='* ]] && [[ $cur != *'`'* ]]; then cur=${cur:0:${#cur}-${#trigger}} selected=$( FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse" "${FZF_COMPLETION_OPTS-} $str_arg") \ FZF_DEFAULT_OPTS_FILE='' \ - __fzf_comprun "${rest[0]}" "${args[@]}" -q "$cur" | eval "$post" | command tr '\n' ' ') + __fzf_comprun "${rest[0]}" "${args[@]}" -q "$cur" | eval "$post" | command tr '\n' ' ' + ) selected=${selected% } # Strip trailing space not to repeat "-o nospace" - if [[ -n "$selected" ]]; then + if [[ -n $selected ]]; then COMPREPLY=("$selected") else COMPREPLY=("$cur") @@ -455,10 +456,10 @@ _fzf_proc_completion() { ' _fzf_complete -m --header-lines=1 --no-preview --wrap --color fg:dim,nth:regular \ --bind "click-header:transform:$transformer" -- "$@" < <( - command ps -eo user,pid,ppid,start,time,command 2> /dev/null || - command ps -eo user,pid,ppid,time,args 2> /dev/null || # For BusyBox - command ps --everyone --full --windows # For cygwin - ) + command ps -eo user,pid,ppid,start,time,command 2> /dev/null || + command ps -eo user,pid,ppid,time,args 2> /dev/null || # For BusyBox + command ps --everyone --full --windows # For cygwin + ) } _fzf_proc_completion_post() { @@ -541,12 +542,12 @@ _fzf_host_completion() { # > and the third argument ($3) is the word preceding the word being completed on the current command line. _fzf_complete_ssh() { case $3 in - -i|-F|-E) + -i | -F | -E) _fzf_path_completion "$@" ;; *) local user= - [[ "$2" =~ '@' ]] && user="${2%%@*}@" + [[ $2 =~ '@' ]] && user="${2%%@*}@" _fzf_complete +m -- "$@" < <(__fzf_list_hosts | __fzf_exec_awk -v user="$user" '{print user $0}') ;; esac @@ -677,10 +678,10 @@ _fzf_setup_completion() { __fzf_orig_completion < <(complete -p "$@" 2> /dev/null) for cmd in "$@"; do case "$kind" in - dir) __fzf_defc "$cmd" "$fn" "-o nospace -o dirnames" ;; - var) __fzf_defc "$cmd" "$fn" "-o default -o nospace -v" ;; + dir) __fzf_defc "$cmd" "$fn" "-o nospace -o dirnames" ;; + var) __fzf_defc "$cmd" "$fn" "-o default -o nospace -v" ;; alias) __fzf_defc "$cmd" "$fn" "-a" ;; - *) __fzf_defc "$cmd" "$fn" "-o default -o bashdefault" ;; + *) __fzf_defc "$cmd" "$fn" "-o default -o bashdefault" ;; esac done } |
