diff options
| author | Junegunn Choi <junegunn.c@gmail.com> | 2024-04-19 22:40:38 +0900 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-04-19 22:40:38 +0900 |
| commit | f864f8b5f7ab62e81fbf9eb2ac2333c7e52bb4e4 (patch) | |
| tree | 81ef4e2c8043565d883eda9b619645890ade9ecd /shell/completion.zsh | |
| parent | 31d72efba703b49b6c5f3ceee3eadac69bb1cd46 (diff) | |
| download | fzf-f864f8b5f7ab62e81fbf9eb2ac2333c7e52bb4e4.tar.gz | |
Respect $FZF_DEFAULT_OPTS_FILE in key bindings and completion (#3742)
Fix #3740
Diffstat (limited to 'shell/completion.zsh')
| -rw-r--r-- | shell/completion.zsh | 17 |
1 files changed, 14 insertions, 3 deletions
diff --git a/shell/completion.zsh b/shell/completion.zsh index 3de9fe49..99cec29c 100644 --- a/shell/completion.zsh +++ b/shell/completion.zsh @@ -94,6 +94,14 @@ if [[ -o interactive ]]; then ########################################################### +__fzf_defaults() { + # $1: Prepend to FZF_DEFAULT_OPTS_FILE and FZF_DEFAULT_OPTS + # $2: Append to FZF_DEFAULT_OPTS_FILE and FZF_DEFAULT_OPTS + echo "--height ${FZF_TMUX_HEIGHT:-40%} --bind=ctrl-z:ignore $1" + command cat "${FZF_DEFAULT_OPTS_FILE-}" 2> /dev/null + echo "${FZF_DEFAULT_OPTS-} $2" +} + __fzf_comprun() { if [[ "$(type _fzf_comprun 2>&1)" =~ function ]]; then _fzf_comprun "$@" @@ -147,8 +155,8 @@ __fzf_generic_path_completion() { [ -z "$dir" ] && dir='.' [ "$dir" != "/" ] && dir="${dir/%\//}" matches=$( - unset FZF_DEFAULT_COMMAND - export FZF_DEFAULT_OPTS="--height ${FZF_TMUX_HEIGHT:-40%} --reverse --scheme=path --bind=ctrl-z:ignore ${FZF_DEFAULT_OPTS-} ${FZF_COMPLETION_OPTS-}" + export FZF_DEFAULT_OPTS=$(__fzf_defaults "--reverse --scheme=path" "${FZF_COMPLETION_OPTS-}") + unset FZF_DEFAULT_COMMAND FZF_DEFAULT_OPTS_FILE if declare -f "$compgen" > /dev/null; then eval "$compgen $(printf %q "$dir")" | __fzf_comprun "$cmd" ${(Q)${(Z+n+)fzf_opts}} -q "$leftover" else @@ -218,7 +226,10 @@ _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=$(__fzf_defaults "--reverse" "${FZF_COMPLETION_OPTS-} $str_arg") \ + FZF_DEFAULT_OPTS_FILE='' \ + __fzf_comprun "$cmd" "${args[@]}" -q "${(Q)prefix}" < "$fifo" | $post | tr '\n' ' ') if [ -n "$matches" ]; then LBUFFER="$lbuf$matches" fi |
