mirror of
https://github.com/ruby/ruby.git
synced 2025-09-16 09:04:05 +02:00
[ruby/reline] Reline 0.5.0.pre
(https://github.com/ruby/reline/pull/614)
* Re-architecture LineEditor's internal state and rendering
* Fix test related to LineEditor re-architecture
* Bump to 0.5.0.pre.1
* Hide cursor only when updating screen. Frequent hide&show makes cursor flickering.
* Simplify rerender call from reline.rb
* Simplify handle_cleared
It only need to clear screen. line_editor.rerender will be called later.
* Add description of updating pasting_state inserts continuous_insertion_buffer
* Use meaningful block parameter
Co-authored-by: Stan Lo <stan001212@gmail.com>
* Fix use of `@cursor_y`
Fix bug updating `@cursor_y`. Do not use `@cursor_y` while updating dialog because it is not current cursor position but cursor position at last rendered time.
* Remove useless instance_variable_set in test
These instance variables are already removed from LineEditor
* Always initialize instance variables to avoid ruby 2.7 warning, remove unused instance variable
* Call update_dialogs from reline.rb before first render
* Combine state representing rendered screen information into `@rendered_screen`
* Rename editor_cursor_ to wrapped_cursor
It represents cursor position of word wrapped whole content
* Remove unused code, tweak, add comment
---------
3fa376217d
Co-authored-by: Stan Lo <stan001212@gmail.com>
This commit is contained in:
parent
e127289632
commit
d7bc6f0eff
11 changed files with 824 additions and 1424 deletions
|
@ -30,10 +30,7 @@ class Reline::LineEditor::StringProcessingTest < Reline::TestCase
|
|||
|
||||
@line_editor.instance_variable_set(:@is_multiline, true)
|
||||
@line_editor.instance_variable_set(:@buffer_of_lines, buf)
|
||||
@line_editor.instance_variable_set(:@line, buf[1])
|
||||
@line_editor.instance_variable_set(:@byte_pointer, 3)
|
||||
@line_editor.instance_variable_set(:@cursor, 3)
|
||||
@line_editor.instance_variable_set(:@cursor_max, 11)
|
||||
@line_editor.instance_variable_set(:@line_index, 1)
|
||||
@line_editor.instance_variable_set(:@completion_proc, proc { |target|
|
||||
assert_equal('p', target)
|
||||
|
@ -42,10 +39,7 @@ class Reline::LineEditor::StringProcessingTest < Reline::TestCase
|
|||
|
||||
@line_editor.instance_variable_set(:@is_multiline, true)
|
||||
@line_editor.instance_variable_set(:@buffer_of_lines, buf)
|
||||
@line_editor.instance_variable_set(:@line, buf[1])
|
||||
@line_editor.instance_variable_set(:@byte_pointer, 6)
|
||||
@line_editor.instance_variable_set(:@cursor, 6)
|
||||
@line_editor.instance_variable_set(:@cursor_max, 11)
|
||||
@line_editor.instance_variable_set(:@line_index, 1)
|
||||
@line_editor.instance_variable_set(:@completion_proc, proc { |target, pre, post|
|
||||
assert_equal('puts', target)
|
||||
|
@ -54,10 +48,7 @@ class Reline::LineEditor::StringProcessingTest < Reline::TestCase
|
|||
})
|
||||
@line_editor.__send__(:call_completion_proc)
|
||||
|
||||
@line_editor.instance_variable_set(:@line, buf[0])
|
||||
@line_editor.instance_variable_set(:@byte_pointer, 6)
|
||||
@line_editor.instance_variable_set(:@cursor, 6)
|
||||
@line_editor.instance_variable_set(:@cursor_max, 8)
|
||||
@line_editor.instance_variable_set(:@line_index, 0)
|
||||
@line_editor.instance_variable_set(:@completion_proc, proc { |target, pre, post|
|
||||
assert_equal('ho', target)
|
||||
|
@ -66,10 +57,7 @@ class Reline::LineEditor::StringProcessingTest < Reline::TestCase
|
|||
})
|
||||
@line_editor.__send__(:call_completion_proc)
|
||||
|
||||
@line_editor.instance_variable_set(:@line, buf[2])
|
||||
@line_editor.instance_variable_set(:@byte_pointer, 1)
|
||||
@line_editor.instance_variable_set(:@cursor, 1)
|
||||
@line_editor.instance_variable_set(:@cursor_max, 3)
|
||||
@line_editor.instance_variable_set(:@line_index, 2)
|
||||
@line_editor.instance_variable_set(:@completion_proc, proc { |target, pre, post|
|
||||
assert_equal('e', target)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue