diff options
author | aycabta <[email protected]> | 2021-08-31 20:48:58 +0900 |
---|---|---|
committer | git <[email protected]> | 2021-08-31 20:48:54 +0900 |
commit | 9b188ac2385df107529a9950648f3e42ad56adc0 (patch) | |
tree | eef4e1f57626e45c562000d68ca7459bbb5b1407 | |
parent | 64373a3c58820fd7b3313f43de2a58d8516a1c95 (diff) |
[ruby/reline] Remove one unnecessary nest for simplicity's sake
https://github.com/ruby/reline/commit/f4bda85a7c
-rw-r--r-- | lib/reline/line_editor.rb | 39 |
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 |