[ruby/reline] Fix completion with multiline
(https://github.com/ruby/reline/pull/513) https://github.com/ruby/reline/commit/d76c482c5f
This commit is contained in:
parent
4782bb352e
commit
6f81e38d1d
@ -1371,8 +1371,8 @@ class Reline::LineEditor
|
||||
@completion_state = CompletionState::MENU
|
||||
end
|
||||
if not just_show_list and target < completed
|
||||
@line = preposing + completed + completion_append_character.to_s + postposing
|
||||
line_to_pointer = preposing + completed + completion_append_character.to_s
|
||||
@line = (preposing + completed + completion_append_character.to_s + postposing).split("\n")[@line_index] || String.new(encoding: @encoding)
|
||||
line_to_pointer = (preposing + completed + completion_append_character.to_s).split("\n").last || String.new(encoding: @encoding)
|
||||
@cursor_max = calculate_width(@line)
|
||||
@cursor = calculate_width(line_to_pointer)
|
||||
@byte_pointer = line_to_pointer.bytesize
|
||||
|
@ -839,6 +839,18 @@ begin
|
||||
EOC
|
||||
end
|
||||
|
||||
def test_multiline_completion
|
||||
start_terminal(10, 50, %W{ruby -I#{@pwd}/lib #{@pwd}/test/reline/yamatanooroti/multiline_repl --complete}, startup_message: 'Multiline REPL.')
|
||||
write("def hoge\n St\n St\C-p\t")
|
||||
close
|
||||
assert_screen(<<~'EOC')
|
||||
Multiline REPL.
|
||||
prompt> def hoge
|
||||
prompt> String
|
||||
prompt> St
|
||||
EOC
|
||||
end
|
||||
|
||||
def test_completion_journey_2nd_line
|
||||
write_inputrc <<~LINES
|
||||
set editing-mode vi
|
||||
|
Loading…
x
Reference in New Issue
Block a user