From 696e8914b74cd10047917ce677b1872ae1f04660 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ot=C3=A1vio=20Schwanck=20dos=20Santos?= Date: Tue, 20 Sep 2022 14:40:48 +0100 Subject: [PATCH] [ruby/reline] PR changes https://github.com/ruby/reline/commit/e8e8d81f47 --- lib/reline/line_editor.rb | 2 +- test/reline/test_key_actor_vi.rb | 12 ++++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/lib/reline/line_editor.rb b/lib/reline/line_editor.rb index 9703a8c9f3..8153aaba05 100644 --- a/lib/reline/line_editor.rb +++ b/lib/reline/line_editor.rb @@ -1430,7 +1430,7 @@ class Reline::LineEditor if @waiting_operator_proc if VI_MOTIONS.include?(method_symbol) old_cursor, old_byte_pointer = @cursor, @byte_pointer - @vi_arg = @waiting_operator_vi_arg if (@waiting_operator_vi_arg || 1) > 1 + @vi_arg = @waiting_operator_vi_arg if @waiting_operator_vi_arg&.> 1 block.(true) unless @waiting_proc cursor_diff, byte_pointer_diff = @cursor - old_cursor, @byte_pointer - old_byte_pointer diff --git a/test/reline/test_key_actor_vi.rb b/test/reline/test_key_actor_vi.rb index b3d49c9bbb..5a8c4ac64d 100644 --- a/test/reline/test_key_actor_vi.rb +++ b/test/reline/test_key_actor_vi.rb @@ -1454,4 +1454,16 @@ class Reline::KeyActor::ViInsert::Test < Reline::TestCase assert_cursor_max(1) assert_line('c') end + + def test_vi_motion_operators + assert_instance_of(Reline::KeyActor::ViInsert, @config.editing_mode) + + begin + input_keys("test = { foo: bar }\C-[BBBldt}b") + + assert true + rescue NoMethodError + assert false + end + end end