add a new test validating that the cursor does not move when cursor is on an empty line

This commit is contained in:
2025-09-07 21:09:20 +01:00
parent 11212430f4
commit a037211763
3 changed files with 21 additions and 2 deletions

View File

@@ -102,7 +102,6 @@ struct
if cursorIdx > otherIdx then
(* yanking backwards from cursorIdx *)
let
val () = print "272\n"
val length = cursorIdx - otherIdx + 1
val buffer = LineGap.goToIdx (otherIdx, buffer)

View File

@@ -45,13 +45,15 @@ fcore/normal-mode/normal-search-finish.sml
fcore/move.sml
fcore/normal-mode/normal-move.sml
fcore/normal-mode/normal-yank.sml
fcore/normal-mode/make-normal-delete.sml
fcore/normal-mode/normal-delete.sml
fcore/normal-mode/normal-yank-delete.sml
fcore/normal-mode/normal-mode.sml
fcore/normal-mode/normal-search-mode.sml
fcore/app-update.sml
(* TEST FILES *)
$(SML_LIB)/basis/mlton.mlb
shell/exception-logger.sml

View File

@@ -1482,6 +1482,24 @@ struct
(* assert *)
Expect.isTrue (oldIdx = newIdx)
end)
, test "does not move cursor when cursor is on a newline" (fn _ =>
let
(* arrange *)
val buffer = LineGap.fromString "hello\n\nworld\n"
val app = TestUtils.init buffer
val app = AppWith.idx (app, 6)
val oldIdx = #cursorIdx app
(* act *)
val app = TestUtils.update (app, CHAR_EVENT #"$")
val newIdx = #cursorIdx app
val nchr = getChr app
val nchr = Char.toString nchr ^ "\n"
in
(* assert *)
Expect.isTrue (oldIdx = newIdx)
end)
]
val hatMove = describe "move motion '^'"