summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJunegunn Choi <junegunn.c@gmail.com>2019-02-22 14:33:29 +0900
committerJunegunn Choi <junegunn.c@gmail.com>2019-02-22 14:36:30 +0900
commit8dc1377efb140c40c7e121b29d9cedb52ad9ea9f (patch)
treea7ad4c0eb63da379a3865ce5369541ea02536ef2
parent6c32148f9020e222bae335fa823229715e067815 (diff)
downloadfzf-8dc1377efb140c40c7e121b29d9cedb52ad9ea9f.tar.gz
Export FZF_PREVIEW_LINES and FZF_PREVIEW_COLUMNS to preview process
fzf will still override LINES and COLUMNS as before but they may not hold the correct values depending on the default shell. Close #1314
-rw-r--r--man/man1/fzf.17
-rw-r--r--src/terminal.go9
-rwxr-xr-xtest/test_go.rb2
3 files changed, 12 insertions, 6 deletions
diff --git a/man/man1/fzf.1 b/man/man1/fzf.1
index 2d00cb84..305ff980 100644
--- a/man/man1/fzf.1
+++ b/man/man1/fzf.1
@@ -288,8 +288,11 @@ EXPRESSION\fR for the details).
e.g. \fBfzf --preview='head -$LINES {}'\fR
\fBls -l | fzf --preview="echo user={3} when={-4..-2}; cat {-1}" --header-lines=1\fR
-fzf overrides \fB$LINES\fR and \fB$COLUMNS\fR so that they represent the exact
-size of the preview window.
+fzf exports \fB$FZF_PREVIEW_LINES\fR and \fB$FZF_PREVIEW_COLUMNS\fR so that
+they represent the exact size of the preview window. (It also overrides
+\fB$LINES\fR and \fB$COLUMNS\fR with the same values but they can be reset
+by the default shell, so prefer to refer to the ones with \fBFZF_PREVIEW_\fR
+prefix.)
A placeholder expression starting with \fB+\fR flag will be replaced to the
space-separated list of the selected lines (or the current line if no selection
diff --git a/src/terminal.go b/src/terminal.go
index c807a4ba..4eaf3f0b 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -613,7 +613,6 @@ func (t *Terminal) resizeWindows() {
pwidth += 1
}
t.pwindow = t.tui.NewWindow(y+1, x+2, pwidth, h-2, tui.BorderNone)
- os.Setenv("FZF_PREVIEW_HEIGHT", strconv.Itoa(h-2))
}
switch t.preview.position {
case posUp:
@@ -1492,8 +1491,12 @@ func (t *Terminal) Loop() {
cmd := util.ExecCommand(command, true)
if t.pwindow != nil {
env := os.Environ()
- env = append(env, fmt.Sprintf("LINES=%d", t.pwindow.Height()))
- env = append(env, fmt.Sprintf("COLUMNS=%d", t.pwindow.Width()))
+ lines := fmt.Sprintf("LINES=%d", t.pwindow.Height())
+ columns := fmt.Sprintf("COLUMNS=%d", t.pwindow.Width())
+ env = append(env, lines)
+ env = append(env, "FZF_PREVIEW_"+lines)
+ env = append(env, columns)
+ env = append(env, "FZF_PREVIEW_"+columns)
cmd.Env = env
}
var out bytes.Buffer
diff --git a/test/test_go.rb b/test/test_go.rb
index df333c08..4d3fa647 100755
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -1371,7 +1371,7 @@ class TestGoFZF < TestBase
end
def test_preview_hidden
- tmux.send_keys %(seq 1000 | #{FZF} --preview 'echo {{}-{}-\\$LINES-\\$COLUMNS}' --preview-window down:1:hidden --bind ?:toggle-preview), :Enter
+ tmux.send_keys %(seq 1000 | #{FZF} --preview 'echo {{}-{}-\\$FZF_PREVIEW_LINES-\\$FZF_PREVIEW_COLUMNS}' --preview-window down:1:hidden --bind ?:toggle-preview), :Enter
tmux.until { |lines| lines[-1] == '>' }
tmux.send_keys '?'
tmux.until { |lines| lines[-2] =~ / {1-1-1-[0-9]+}/ }