[ruby/reline] Implement changing editing mode

(https://github.com/ruby/reline/pull/681)

https://github.com/ruby/reline/commit/501b9a6c5f
This commit is contained in:
Mari Imaizumi 2024-04-16 20:58:46 +09:00 committed by git
parent 54d472d91f
commit 639449fe8d
3 changed files with 18 additions and 0 deletions

View File

@ -2630,4 +2630,12 @@ class Reline::LineEditor
@mark_pointer = new_pointer
end
alias_method :exchange_point_and_mark, :em_exchange_mark
private def emacs_editing_mode(key)
@config.editing_mode = :emacs
end
private def vi_editing_mode(key)
@config.editing_mode = :vi_insert
end
end

View File

@ -1436,4 +1436,9 @@ class Reline::KeyActor::Emacs::Test < Reline::TestCase
input_keys("\C-f\C-u", false)
assert_line_around_cursor('', '')
end
def test_vi_editing_mode
@line_editor.__send__(:vi_editing_mode, nil)
assert(@config.editing_mode_is?(:vi_insert))
end
end

View File

@ -911,4 +911,9 @@ class Reline::KeyActor::ViInsert::Test < Reline::TestCase
input_keys("test = { foo: bar }\C-[BBBldt}b")
end
end
def test_emacs_editing_mode
@line_editor.__send__(:emacs_editing_mode, nil)
assert(@config.editing_mode_is?(:emacs))
end
end