diff options
author | aycabta <aycabta@gmail.com> | 2021-01-29 18:27:54 +0900 |
---|---|---|
committer | aycabta <aycabta@gmail.com> | 2021-02-07 05:11:00 +0900 |
commit | 03523fdafb320d53cc455065a25079a9e3a93707 (patch) | |
tree | 2759817aedfb6bb091305c575206b847dd7fbbf1 /lib/reline/line_editor.rb | |
parent | ec6929a5ddf2c00ad991484daad7f73cec36f29b (diff) |
[ruby/reline] Scroll down when ^C is pressed
https://github.com/ruby/reline/commit/6877a7e3f5
Diffstat (limited to 'lib/reline/line_editor.rb')
-rw-r--r-- | lib/reline/line_editor.rb | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 4a635031a3..1017dc6cc9 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -150,6 +150,13 @@ class Reline::LineEditor @screen_height = @screen_size.first reset_variables(prompt, encoding: encoding) @old_trap = Signal.trap('SIGINT') { + if @scroll_partial_screen + move_cursor_down(@screen_height - (@line_index - @scroll_partial_screen) - 1) + else + move_cursor_down(@highest_in_all - @line_index - 1) + end + Reline::IOGate.move_cursor_column(0) + scroll_down(1) @old_trap.call if @old_trap.respond_to?(:call) # can also be string, ex: "DEFAULT" raise Interrupt } @@ -420,6 +427,7 @@ class Reline::LineEditor end end @buffer_of_lines[@line_index] = @line + @rest_height = 0 if @scroll_partial_screen else line = modify_lines(whole_lines)[@line_index] render_partial(prompt, prompt_width, line, 0) |