diff options
| author | John Fred Fadrigalan <johnfred.fadrigalan@hotmail.com> | 2022-10-16 16:15:19 +0800 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2022-10-16 17:15:19 +0900 |
| commit | 4603d540c3ae648c9e2ef84f33433b275290aa7c (patch) | |
| tree | 2b6211dc1cb03e19fe5aec8089b9de7ddb172d93 /shell/completion.zsh | |
| parent | f9d53303bb00225edb6e46ca1851e5cf1b55e623 (diff) | |
| download | fzf-4603d540c3ae648c9e2ef84f33433b275290aa7c.tar.gz | |
[shell] Make bash/zsh completion and bindings work with 'set -u' (#2999)
Co-authored-by: Junegunn Choi <junegunn.c@gmail.com>
Diffstat (limited to 'shell/completion.zsh')
| -rw-r--r-- | shell/completion.zsh | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/shell/completion.zsh b/shell/completion.zsh index 417d03c0..807d7b3a 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -99,9 +99,9 @@ fi __fzf_comprun() { if [[ "$(type _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 - if [ -n "$FZF_TMUX_OPTS" ]; then + if [ -n "${FZF_TMUX_OPTS-}" ]; then fzf-tmux ${(Q)${(Z+n+)FZF_TMUX_OPTS}} -- "$@" else fzf-tmux -d ${FZF_TMUX_HEIGHT:-40%} -- "$@" @@ -145,7 +145,7 @@ __fzf_generic_path_completion() { leftover=${leftover/#\/} [ -z "$dir" ] && dir='.' [ "$dir" != "/" ] && dir="${dir/%\//}" - matches=$(eval "$compgen $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" | while read item; do + matches=$(eval "$compgen $(printf %q "$dir")" | FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-}" __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" | while read item; do item="${item%$suffix}$suffix" echo -n "${(q)item} " done) @@ -184,7 +184,7 @@ _fzf_complete() { args=("$@") sep= for i in {0..${#args[@]}}; do - if [[ "${args[$i]}" = -- ]]; then + if [[ "${args[$i]-}" = -- ]]; then sep=$i break fi @@ -208,7 +208,7 @@ _fzf_complete() { type $post > /dev/null 2>&1 || post=cat _fzf_feed_fifo "$fifo" - matches=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore $FZF_DEFAULT_OPTS $FZF_COMPLETION_OPTS $str_arg" __fzf_comprun "$cmd" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ') + matches=$(FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-} $str_arg" __fzf_comprun "$cmd" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ') if [ -n "$matches" ]; then LBUFFER="$lbuf$matches" fi @@ -279,8 +279,8 @@ fzf-completion() { [ -z "$trigger" -a ${LBUFFER[-1]} = ' ' ] && tokens+=("") # When the trigger starts with ';', it becomes a separate token - if [[ ${LBUFFER} = *"${tokens[-2]}${tokens[-1]}" ]]; then - tokens[-2]="${tokens[-2]}${tokens[-1]}" + if [[ ${LBUFFER} = *"${tokens[-2]-}${tokens[-1]}" ]]; then + tokens[-2]="${tokens[-2]-}${tokens[-1]}" tokens=(${tokens[0,-2]}) fi |
