summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--CHANGELOG.md6
-rw-r--r--src/terminal.go10
-rwxr-xr-xtest/test_go.rb104
3 files changed, 51 insertions, 69 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 100a7cb6..0378ba1e 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,6 +1,12 @@
CHANGELOG
=========
+0.37.1
+------
+- Bug fixes
+ - `--preview-window 0,hidden` should not execute the preview command until
+ `toggle-preview` action is triggered
+
0.37.0
------
- Added a way to customize the separator of inline info
diff --git a/src/terminal.go b/src/terminal.go
index 03cbdd68..8c6259a4 100644
--- a/src/terminal.go
+++ b/src/terminal.go
@@ -1244,6 +1244,8 @@ func (t *Terminal) resizeWindows(forcePreview bool) {
}
}
resizePreviewWindows(&t.previewOpts)
+ } else {
+ t.activePreviewOpts = &t.previewOpts
}
// Without preview window
@@ -2279,7 +2281,7 @@ func (t *Terminal) mayNeedPreviewWindow() bool {
// Check if previewer is currently in action (invisible previewer with size 0 or visible previewer)
func (t *Terminal) isPreviewEnabled() bool {
- return t.hasPreviewer() && t.previewer.enabled && (!t.previewOpts.Visible() || t.pwindow != nil)
+ return t.hasPreviewer() && t.previewer.enabled && (!t.previewOpts.Visible() && !t.previewOpts.hidden || t.pwindow != nil)
}
func (t *Terminal) hasPreviewWindow() bool {
@@ -2866,11 +2868,7 @@ func (t *Terminal) Loop() {
return false
case actTogglePreview:
if t.hasPreviewer() {
- if t.activePreviewOpts != nil {
- t.activePreviewOpts.Toggle()
- } else if !t.previewOpts.Visible() {
- t.previewer.enabled = !t.previewer.enabled
- }
+ t.activePreviewOpts.Toggle()
updatePreviewWindow(false)
if t.isPreviewEnabled() {
valid, list := t.buildPlusList(t.previewOpts.command, false, false)
diff --git a/test/test_go.rb b/test/test_go.rb
index 3dd63579..fc8e149d 100755
--- a/test/test_go.rb
+++ b/test/test_go.rb
@@ -180,7 +180,7 @@ class TestBase < Minitest::Test
end
def writelines(path, lines)
- File.unlink(path) while File.exist?(path)
+ FileUtils.rm_f(path) while File.exist?(path)
File.open(path, 'w') { |f| f.puts lines }
end
@@ -188,7 +188,7 @@ class TestBase < Minitest::Test
wait { assert_path_exists tempname }
File.read(tempname)
ensure
- File.unlink(tempname) while File.exist?(tempname)
+ FileUtils.rm_f(tempname) while File.exist?(tempname)
@temp_suffix += 1
tmux.prepare
end
@@ -905,11 +905,7 @@ class TestGoFZF < TestBase
history_file = '/tmp/fzf-test-history'
# History with limited number of entries
- begin
- File.unlink(history_file)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(history_file)
opts = "--history=#{history_file} --history-size=4"
input = %w[00 11 22 33 44]
input.each do |keys|
@@ -955,7 +951,7 @@ class TestGoFZF < TestBase
tmux.until { |lines| assert_equal '> 33', lines[-1] }
tmux.send_keys :Enter
ensure
- File.unlink(history_file)
+ FileUtils.rm_f(history_file)
end
def test_execute
@@ -984,11 +980,7 @@ class TestGoFZF < TestBase
], File.readlines(output, chomp: true)
end
ensure
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
end
def test_execute_multi
@@ -1013,20 +1005,12 @@ class TestGoFZF < TestBase
], File.readlines(output, chomp: true)
end
ensure
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
end
def test_execute_plus_flag
output = tempname + '.tmp'
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
writelines(tempname, ['foo bar', '123 456'])
tmux.send_keys "cat #{tempname} | #{FZF} --multi --bind 'x:execute-silent(echo {+}/{}/{+2}/{2} >> #{output})'", :Enter
@@ -1059,21 +1043,13 @@ class TestGoFZF < TestBase
], File.readlines(output, chomp: true)
end
rescue StandardError
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
end
def test_execute_shell
# Custom script to use as $SHELL
output = tempname + '.out'
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
writelines(tempname,
['#!/usr/bin/env bash', "echo $1 / $2 > #{output}"])
system("chmod +x #{tempname}")
@@ -1087,11 +1063,7 @@ class TestGoFZF < TestBase
assert_equal ["-c / 'foo'bar"], File.readlines(output, chomp: true)
end
ensure
- begin
- File.unlink(output)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(output)
end
def test_cycle
@@ -1497,11 +1469,7 @@ class TestGoFZF < TestBase
end
def test_preview_size_0
- begin
- File.unlink(tempname)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(tempname)
tmux.send_keys %(seq 100 | #{FZF} --reverse --preview 'echo {} >> #{tempname}; echo ' --preview-window 0 --bind space:toggle-preview), :Enter
tmux.until do |lines|
assert_equal 100, lines.item_count
@@ -1526,6 +1494,32 @@ class TestGoFZF < TestBase
end
end
+ def test_preview_size_0_hidden
+ FileUtils.rm_f(tempname)
+ tmux.send_keys %(seq 100 | #{FZF} --reverse --preview 'echo {} >> #{tempname}; echo ' --preview-window 0,hidden --bind space:toggle-preview), :Enter
+ tmux.until { |lines| assert_equal 100, lines.item_count }
+ tmux.send_keys :Down, :Down
+ tmux.until { |lines| assert_includes lines, '> 3' }
+ wait { refute_path_exists tempname }
+ tmux.send_keys :Space
+ wait do
+ assert_path_exists tempname
+ assert_equal %w[3], File.readlines(tempname, chomp: true)
+ end
+ tmux.send_keys :Down
+ wait do
+ assert_equal %w[3 4], File.readlines(tempname, chomp: true)
+ end
+ tmux.send_keys :Space, :Down
+ tmux.until { |lines| assert_includes lines, '> 5' }
+ tmux.send_keys :Down
+ tmux.until { |lines| assert_includes lines, '> 6' }
+ tmux.send_keys :Space
+ wait do
+ assert_equal %w[3 4 6], File.readlines(tempname, chomp: true)
+ end
+ end
+
def test_preview_flags
tmux.send_keys %(seq 10 | sed 's/^/:: /; s/$/ /' |
#{FZF} --multi --preview 'echo {{2}/{s2}/{+2}/{+s2}/{q}/{n}/{+n}}'), :Enter
@@ -2087,11 +2081,7 @@ class TestGoFZF < TestBase
wait { refute system("pgrep -f #{script}") }
ensure
system("pkill -9 -f #{script}")
- begin
- File.unlink(script)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(script)
end
def test_kill_default_command_on_accept
@@ -2109,11 +2099,7 @@ class TestGoFZF < TestBase
wait { refute system("pgrep -f #{script}") }
ensure
system("pkill -9 -f #{script}")
- begin
- File.unlink(script)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(script)
end
def test_kill_reload_command_on_abort
@@ -2134,11 +2120,7 @@ class TestGoFZF < TestBase
wait { refute system("pgrep -f #{script}") }
ensure
system("pkill -9 -f #{script}")
- begin
- File.unlink(script)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(script)
end
def test_kill_reload_command_on_accept
@@ -2158,11 +2140,7 @@ class TestGoFZF < TestBase
wait { refute system("pgrep -f #{script}") }
ensure
system("pkill -9 -f #{script}")
- begin
- File.unlink(script)
- rescue StandardError
- nil
- end
+ FileUtils.rm_f(script)
end
def test_preview_header