summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--lib/irb/completion.rb8
-rw-r--r--test/irb/test_completion.rb7
-rw-r--r--test/irb/yamatanooroti/test_rendering.rb6
3 files changed, 18 insertions, 3 deletions
diff --git a/lib/irb/completion.rb b/lib/irb/completion.rb
index af3b69eb27..7b9c1bbbdd 100644
--- a/lib/irb/completion.rb
+++ b/lib/irb/completion.rb
@@ -406,7 +406,13 @@ module IRB
else
select_message(receiver, message, candidates.sort)
end
-
+ when /^\s*$/
+ # empty input
+ if doc_namespace
+ nil
+ else
+ []
+ end
else
if doc_namespace
vars = (bind.local_variables | bind.eval_instance_variables).collect{|m| m.to_s}
diff --git a/test/irb/test_completion.rb b/test/irb/test_completion.rb
index 0625c96976..348cd4b6dc 100644
--- a/test/irb/test_completion.rb
+++ b/test/irb/test_completion.rb
@@ -204,6 +204,13 @@ module TestIRB
end
end
+ def test_not_completing_empty_string
+ assert_equal([], completion_candidates("", binding))
+ assert_equal([], completion_candidates(" ", binding))
+ assert_equal([], completion_candidates("\t", binding))
+ assert_equal(nil, doc_namespace("", binding))
+ end
+
def test_complete_symbol
symbols = %w"UTF-16LE UTF-7".map do |enc|
"K".force_encoding(enc).to_sym
diff --git a/test/irb/yamatanooroti/test_rendering.rb b/test/irb/yamatanooroti/test_rendering.rb
index a53dc83ac7..f698466e49 100644
--- a/test/irb/yamatanooroti/test_rendering.rb
+++ b/test/irb/yamatanooroti/test_rendering.rb
@@ -232,7 +232,8 @@ class IRB::RenderingTest < Yamatanooroti::TestCase
puts 'start IRB'
LINES
start_terminal(4, 19, %W{ruby -I#{@pwd}/lib #{@pwd}/exe/irb}, startup_message: 'start IRB')
- write("IR\C-i")
+ write("IR")
+ write("\C-i")
close
# This is because on macOS we display different shortcut for displaying the full doc
@@ -268,7 +269,8 @@ class IRB::RenderingTest < Yamatanooroti::TestCase
puts 'start IRB'
LINES
start_terminal(4, 12, %W{ruby -I#{@pwd}/lib #{@pwd}/exe/irb}, startup_message: 'start IRB')
- write("IR\C-i")
+ write("IR")
+ write("\C-i")
close
assert_screen(<<~EOC)
start IRB