diff options
Diffstat (limited to 'ADVANCED.md')
| -rw-r--r-- | ADVANCED.md | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/ADVANCED.md b/ADVANCED.md index 012fb62b..d9dc72f0 100644 --- a/ADVANCED.md +++ b/ADVANCED.md @@ -515,20 +515,19 @@ remainder of the query is passed to fzf for secondary filtering. ```sh #!/usr/bin/env bash +export TEMP=$(mktemp -u) +trap 'rm -f "$TEMP"' EXIT + INITIAL_QUERY="${*:-}" TRANSFORMER=' rg_pat={q:1} # The first word is passed to ripgrep fzf_pat={q:2..} # The rest are passed to fzf - rg_pat_org={q:s1} # The first word with trailing whitespaces preserved. - # We use this to avoid unnecessary reloading of ripgrep. - if [[ -n $fzf_pat ]]; then - echo "search:$fzf_pat" - elif ! [[ $rg_pat_org =~ \ $ ]]; then + if ! [[ -r "$TEMP" ]] || [[ $rg_pat != $(cat "$TEMP") ]]; then + echo "$rg_pat" > "$TEMP" printf "reload:sleep 0.1; rg --column --line-number --no-heading --color=always --smart-case %q || true" "$rg_pat" - else - echo search: fi + echo "+search:$fzf_pat" ' fzf --ansi --disabled --query "$INITIAL_QUERY" \ --with-shell 'bash -c' \ |
