From de6af42b6e062ae28d219e76e7dee5b5c12c7289 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Tue, 2 Oct 2018 18:56:15 +0300 Subject: [PATCH 1/3] search actual buffer contents, not file contents --- rc/fzf.kak | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index 13b2b0e..5a4dd56 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -176,8 +176,13 @@ define-command -hidden fzf-buffer-search %{ title="fzf buffer search" message="Search buffer with fzf, and jump to result location" echo "info -title '$title' '$message'" + current_line=$kak_cursor_line + tmp=$(mktemp $(eval echo ${TMPDIR:-/tmp}/kak-curr-buff.XXXXXX)) + echo "execute-keys %{%cat>$tmp}" + # echo "execute-keys %{$current_line g}" + echo "fzf \"execute-keys \$1 gx\" \"(nl -b a -n ln $tmp\" \"--reverse | cut -f 1)\"" + rm -rf $tmp } - fzf "execute-keys $1 gx" "(nl -b a -n ln '%val{buffile}'" "--reverse | cut -f 1)" } define-command -hidden fzf -params 2..3 %{ evaluate-commands %sh{ From 981c5e8bbf4da1e7a1f4c87a367de5ed16c4dcd1 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Tue, 2 Oct 2018 19:39:05 +0300 Subject: [PATCH 2/3] remove buffer from tmp --- rc/fzf.kak | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index 5a4dd56..69aba51 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -153,8 +153,7 @@ define-command -hidden fzf-tag %{ [ ! -z "${kak_client_env_TMUX}" ] && additional_keybindings=" : open tag in horizontal split : open tag in vertical split" - message="Jump to a symbol''s definition. -: open tag in new buffer. + message="Jump to a symbol''s definition.: open tag in new buffer. : open tag in new window $additional_keybindings" echo "info -title '$title' '$message'" [ ! -z "${kak_client_env_TMUX}" ] && additional_flags="--expect ctrl-v --expect ctrl-s" @@ -176,12 +175,13 @@ define-command -hidden fzf-buffer-search %{ title="fzf buffer search" message="Search buffer with fzf, and jump to result location" echo "info -title '$title' '$message'" - current_line=$kak_cursor_line - tmp=$(mktemp $(eval echo ${TMPDIR:-/tmp}/kak-curr-buff.XXXXXX)) - echo "execute-keys %{%cat>$tmp}" - # echo "execute-keys %{$current_line g}" - echo "fzf \"execute-keys \$1 gx\" \"(nl -b a -n ln $tmp\" \"--reverse | cut -f 1)\"" - rm -rf $tmp + line=$kak_cursor_line + char=$(expr $kak_cursor_char_column - 1) + buffer_content=$(mktemp ${TMPDIR:-/tmp}/kak-curr-buff.XXXXXX) + echo "execute-keys %{%cat>$buffer_content;}" + echo "execute-keys $line g $char l" + echo "fzf \"execute-keys \$1 gx\" \"(nl -b a -n ln $buffer_content\" \"--reverse | cut -f 1)\"" + echo "nop %sh{rm $buffer_content}" } } From 8a4fcc768af9c90afb143d734e6567384fb3e988 Mon Sep 17 00:00:00 2001 From: Andrey Orst Date: Tue, 2 Oct 2018 19:44:21 +0300 Subject: [PATCH 3/3] prevent early deletion of tmp buffer file --- rc/fzf.kak | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/rc/fzf.kak b/rc/fzf.kak index 69aba51..19c203e 100644 --- a/rc/fzf.kak +++ b/rc/fzf.kak @@ -181,7 +181,9 @@ define-command -hidden fzf-buffer-search %{ echo "execute-keys %{%cat>$buffer_content;}" echo "execute-keys $line g $char l" echo "fzf \"execute-keys \$1 gx\" \"(nl -b a -n ln $buffer_content\" \"--reverse | cut -f 1)\"" - echo "nop %sh{rm $buffer_content}" + (echo "fzf \"execute-keys \$1 gx\" \"(nl -b a -n ln $buffer_content\" \"--reverse | cut -f 1)\"") 1>&2 + # sleep 2 is needed to because everything is done asynchronously, so file should not be deleted until it was read by fzf + echo "nop %sh{sleep 2; rm $buffer_content}" } }