prevent edit_move_right from extending an active region (#61378)
Some checks failed
Whitespace / Check whitespace (push) Has been cancelled

fixes #61377

See there for description and explanation of the bug.
This commit is contained in:
matthias314
2026-05-27 09:53:45 -04:00
committed by GitHub
parent 7cf0a724ee
commit 625f3c3308
2 changed files with 20 additions and 1 deletions

View File

@@ -304,7 +304,7 @@ for f in Union{Symbol,Expr}[
end
for f in [:edit_insert, :edit_insert_newline, :edit_backspace, :edit_move_left,
:edit_move_right, :edit_move_word_left, :edit_move_word_right]
:edit_move_word_left, :edit_move_word_right] # :edit_move_right is handled separately
@eval function ($f)(s::MIState, args...)
set_action!(s, $(Expr(:quote, f)))
$(f)(state(s), args...)
@@ -911,6 +911,7 @@ function edit_move_right(buf::IOBuffer)
return false
end
function edit_move_right(m::MIState)
set_action!(m, :edit_move_right)
s = state(m)
buf = s.input_buffer
if edit_move_right(s.input_buffer)

View File

@@ -525,6 +525,24 @@ end
@test LineEdit.region(s) == (0=>9)
@inferred Union{Bool, LineEdit.InputAreaState} LineEdit.edit_shift_move(s, LineEdit.edit_move_right)
@test LineEdit.region(s) == (2=>9)
# issue #61377
for edit_move in [LineEdit.edit_insert_newline, LineEdit.edit_backspace,
LineEdit.edit_move_left, LineEdit.edit_move_right,
LineEdit.edit_move_word_left, LineEdit.edit_move_word_right,
LineEdit.edit_move_up, LineEdit.edit_move_down]
s = new_state()
edit_insert(s, "abcd\nefgh\nijkl")
s.current_action = :unknown
LineEdit.edit_move_up(s)
s.current_action = :unknown
LineEdit.edit_shift_move(s, LineEdit.edit_move_left)
s.current_action = :unknown
LineEdit.edit_shift_move(s, LineEdit.edit_move_left)
s.current_action = :unknown
edit_move(s)
@test !LineEdit.is_region_active(s)
end
end
@testset "tab/backspace alignment feature" begin