mirror of
https://github.com/Llewellynvdm/fzf.git
synced 2024-12-23 11:29:01 +00:00
Improve -0 and -1 as suggested in #36
- Make -0 and -1 work without -q - Change exit status to 0 when exiting with -0
This commit is contained in:
parent
22d3929ae3
commit
02c01c81a0
@ -72,8 +72,8 @@ usage: fzf [options]
|
|||||||
|
|
||||||
Scripting
|
Scripting
|
||||||
-q, --query=STR Start the finder with the given query
|
-q, --query=STR Start the finder with the given query
|
||||||
-1, --select-1 (with --query) Automatically select the only match
|
-1, --select-1 Automatically select the only match
|
||||||
-0, --exit-0 (with --query) Exit when there's no match
|
-0, --exit-0 Exit immediately when there's no match
|
||||||
-f, --filter=STR Filter mode. Do not start interactive finder.
|
-f, --filter=STR Filter mode. Do not start interactive finder.
|
||||||
|
|
||||||
Environment variables
|
Environment variables
|
||||||
|
16
fzf
16
fzf
@ -7,7 +7,7 @@
|
|||||||
# / __/ / /_/ __/
|
# / __/ / /_/ __/
|
||||||
# /_/ /___/_/ Fuzzy finder for your shell
|
# /_/ /___/_/ Fuzzy finder for your shell
|
||||||
#
|
#
|
||||||
# Version: 0.8.3 (April 2, 2014)
|
# Version: 0.8.3 (April 3, 2014)
|
||||||
#
|
#
|
||||||
# Author: Junegunn Choi
|
# Author: Junegunn Choi
|
||||||
# URL: https://github.com/junegunn/fzf
|
# URL: https://github.com/junegunn/fzf
|
||||||
@ -194,16 +194,16 @@ class FZF
|
|||||||
filter_list @new
|
filter_list @new
|
||||||
else
|
else
|
||||||
start_reader
|
start_reader
|
||||||
emit(:key) { q = @query.get; [q, q.length] } unless @query.empty?
|
emit(:key) { q = @query.get; [q, q.length] } unless empty = @query.empty?
|
||||||
if !@query.empty? && (@select1 || @exit0)
|
if @select1 || @exit0
|
||||||
start_search do |loaded, matches|
|
start_search do |loaded, matches|
|
||||||
len = matches.length
|
len = empty ? @count.get : matches.length
|
||||||
if loaded
|
if loaded
|
||||||
if @select1 && len == 1
|
if @select1 && len == 1
|
||||||
puts matches.first.first
|
puts empty ? matches.first : matches.first.first
|
||||||
exit 0
|
exit 0
|
||||||
elsif @exit0 && len == 0
|
elsif @exit0 && len == 0
|
||||||
exit 1
|
exit 0
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
@ -276,8 +276,8 @@ class FZF
|
|||||||
|
|
||||||
Scripting
|
Scripting
|
||||||
-q, --query=STR Start the finder with the given query
|
-q, --query=STR Start the finder with the given query
|
||||||
-1, --select-1 (with --query) Automatically select the only match
|
-1, --select-1 Automatically select the only match
|
||||||
-0, --exit-0 (with --query) Exit when there's no match
|
-0, --exit-0 Exit immediately when there's no match
|
||||||
-f, --filter=STR Filter mode. Do not start interactive finder.
|
-f, --filter=STR Filter mode. Do not start interactive finder.
|
||||||
|
|
||||||
Environment variables
|
Environment variables
|
||||||
|
@ -590,6 +590,21 @@ class TestFZF < MiniTest::Unit::TestCase
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
def test_select_1_without_query
|
||||||
|
stream = stream_for "Hello World"
|
||||||
|
output = StringIO.new
|
||||||
|
|
||||||
|
begin
|
||||||
|
$stdout = output
|
||||||
|
FZF.new(%w[--select-1], stream).start
|
||||||
|
rescue SystemExit => e
|
||||||
|
assert_equal 0, e.status
|
||||||
|
assert_equal 'Hello World', output.string.chomp
|
||||||
|
ensure
|
||||||
|
$stdout = STDOUT
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
def test_select_1_ambiguity
|
def test_select_1_ambiguity
|
||||||
stream = stream_for "Hello\nWorld"
|
stream = stream_for "Hello\nWorld"
|
||||||
begin
|
begin
|
||||||
@ -611,7 +626,22 @@ class TestFZF < MiniTest::Unit::TestCase
|
|||||||
$stdout = output
|
$stdout = output
|
||||||
FZF.new(%w[--query=zz --exit-0], stream).start
|
FZF.new(%w[--query=zz --exit-0], stream).start
|
||||||
rescue SystemExit => e
|
rescue SystemExit => e
|
||||||
assert_equal 1, e.status
|
assert_equal 0, e.status
|
||||||
|
assert_equal '', output.string
|
||||||
|
ensure
|
||||||
|
$stdout = STDOUT
|
||||||
|
end
|
||||||
|
end
|
||||||
|
|
||||||
|
def test_exit_0_without_query
|
||||||
|
stream = stream_for ""
|
||||||
|
output = StringIO.new
|
||||||
|
|
||||||
|
begin
|
||||||
|
$stdout = output
|
||||||
|
FZF.new(%w[--exit-0], stream).start
|
||||||
|
rescue SystemExit => e
|
||||||
|
assert_equal 0, e.status
|
||||||
assert_equal '', output.string
|
assert_equal '', output.string
|
||||||
ensure
|
ensure
|
||||||
$stdout = STDOUT
|
$stdout = STDOUT
|
||||||
|
Loading…
Reference in New Issue
Block a user