summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authoraycabta <aycabta@gmail.com>2021-08-31 20:48:58 +0900
committergit <svn-admin@ruby-lang.org>2021-08-31 20:48:54 +0900
commit9b188ac2385df107529a9950648f3e42ad56adc0 (patch)
treeeef4e1f57626e45c562000d68ca7459bbb5b1407 /lib
parent64373a3c58820fd7b3313f43de2a58d8516a1c95 (diff)
[ruby/reline] Remove one unnecessary nest for simplicity's sake
https://github.com/ruby/reline/commit/f4bda85a7c
Diffstat (limited to 'lib')
-rw-r--r--lib/reline/line_editor.rb39
1 files changed, 19 insertions, 20 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb
index d254738be2..838494eb65 100644
--- a/lib/reline/line_editor.rb
+++ b/lib/reline/line_editor.rb
@@ -589,26 +589,7 @@ class Reline::LineEditor
end
dialog.set_cursor_pos(cursor_column, @first_line_started_from + @started_from)
dialog_render_info = dialog.call
- old_dialog = dialog.clone
- if dialog_render_info and dialog_render_info.contents and not dialog_render_info.contents.empty?
- dialog.width = dialog_render_info.width if dialog_render_info.width
- height = dialog_render_info.height || DIALOG_HEIGHT
- pointer = dialog_render_info.pointer
- dialog.contents = dialog_render_info.contents
- if dialog.contents.size > height
- if dialog_render_info.pointer
- if dialog_render_info.pointer < 0
- dialog.scroll_top = 0
- elsif (dialog_render_info.pointer - dialog.scroll_top) >= (height - 1)
- dialog.scroll_top = dialog_render_info.pointer - (height - 1)
- elsif (dialog_render_info.pointer - dialog.scroll_top) < 0
- dialog.scroll_top = dialog_render_info.pointer
- end
- pointer = dialog_render_info.pointer - dialog.scroll_top
- end
- dialog.contents = dialog.contents[dialog.scroll_top, height]
- end
- else
+ if dialog_render_info.nil? or dialog_render_info.contents.nil? or dialog_render_info.contents.empty?
dialog.lines_backup = {
lines: modify_lines(whole_lines),
line_index: @line_index,
@@ -620,6 +601,24 @@ class Reline::LineEditor
dialog.contents = nil
return
end
+ old_dialog = dialog.clone
+ dialog.width = dialog_render_info.width if dialog_render_info.width
+ height = dialog_render_info.height || DIALOG_HEIGHT
+ pointer = dialog_render_info.pointer
+ dialog.contents = dialog_render_info.contents
+ if dialog.contents.size > height
+ if dialog_render_info.pointer
+ if dialog_render_info.pointer < 0
+ dialog.scroll_top = 0
+ elsif (dialog_render_info.pointer - dialog.scroll_top) >= (height - 1)
+ dialog.scroll_top = dialog_render_info.pointer - (height - 1)
+ elsif (dialog_render_info.pointer - dialog.scroll_top) < 0
+ dialog.scroll_top = dialog_render_info.pointer
+ end
+ pointer = dialog_render_info.pointer - dialog.scroll_top
+ end
+ dialog.contents = dialog.contents[dialog.scroll_top, height]
+ end
upper_space = @first_line_started_from - @started_from
lower_space = @highest_in_all - @first_line_started_from - @started_from - 1
dialog.column = dialog_render_info.pos.x