summaryrefslogtreecommitdiff
path: root/test
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-10-03 18:25:26 +0900
committergit <svn-admin@ruby-lang.org>2021-10-03 21:51:02 +0900
commit64e96d6b4100cd7ef53ed1a7d14c1298ccb0eb23 (patch)
tree2f0d98fdab0671375fa980f118b4299481d8a230 /test
parent208b7b81990edea6e220a4e2e4e0995c4ec0aad1 (diff)
[ruby/reline] Re-calc the scroll pos when the content in dialog is shortened
https://github.com/ruby/reline/commit/12ea63e6e0
Diffstat (limited to 'test')
-rwxr-xr-xtest/reline/yamatanooroti/multiline_repl7
-rw-r--r--test/reline/yamatanooroti/test_rendering.rb27
2 files changed, 34 insertions, 0 deletions
diff --git a/test/reline/yamatanooroti/multiline_repl b/test/reline/yamatanooroti/multiline_repl
index c9036f71b4..b80d1b3ab2 100755
--- a/test/reline/yamatanooroti/multiline_repl
+++ b/test/reline/yamatanooroti/multiline_repl
@@ -115,6 +115,13 @@ opt.on('--autocomplete-long') {
}.select{ |c| c.start_with?(target) }
}
}
+opt.on('--autocomplete-super-long') {
+ Reline.autocompletion = true
+ Reline.completion_proc = lambda { |target, preposing = nil, postposing = nil|
+ c = 'A'
+ 2000.times.map{ s = "Str_#{c}"; c.succ!; s }.select{ |c| c.start_with?(target) }
+ }
+}
opt.parse!(ARGV)
begin
diff --git a/test/reline/yamatanooroti/test_rendering.rb b/test/reline/yamatanooroti/test_rendering.rb
index f5274cc787..c26e998a11 100644
--- a/test/reline/yamatanooroti/test_rendering.rb
+++ b/test/reline/yamatanooroti/test_rendering.rb
@@ -1057,6 +1057,33 @@ begin
EOC
end
+ def test_autocomplete_super_long_and_backspace
+ start_terminal(20, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --autocomplete-super-long}, startup_message: 'Multiline REPL.')
+ shift_tab = [27, 91, 90]
+ write('S' + shift_tab.map(&:chr).join)
+ write("\C-h")
+ close
+ assert_screen(<<~'EOC')
+ Multiline REPL.
+ prompt> Str_BX
+ Str_BX
+ Str_BXA
+ Str_BXB
+ Str_BXC
+ Str_BXD
+ Str_BXE
+ Str_BXF
+ Str_BXG
+ Str_BXH
+ Str_BXI
+ Str_BXJ
+ Str_BXK
+ Str_BXL
+ Str_BXM
+ Str_BXN
+ EOC
+ end
+
def test_dialog_callback_returns_nil
start_terminal(20, 30, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --dialog nil}, startup_message: 'Multiline REPL.')
write('a')