From cddd03812b67e0cc627f1ef3ebb4a83bdf661a71 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 25 Sep 2025 06:23:12 +0100 Subject: [PATCH] implement first pass of 'MakeNormalDelete.deleteLine'; have to add tests for this next --- fcore/normal-mode/make-normal-delete.sml | 27 ++++++++---------------- 1 file changed, 9 insertions(+), 18 deletions(-) diff --git a/fcore/normal-mode/make-normal-delete.sml b/fcore/normal-mode/make-normal-delete.sml index 1c075a7..fdf1bc4 100644 --- a/fcore/normal-mode/make-normal-delete.sml +++ b/fcore/normal-mode/make-normal-delete.sml @@ -396,26 +396,17 @@ struct val buffer = LineGap.goToLine (endLine, buffer) val endLineIdx = LineGap.lineNumberToIdx (endLine, buffer) - val endLineIdx = - if endLineIdx = #textLength buffer then Int.max (endLineIdx - 1, 0) - else endLineIdx val buffer = LineGap.goToIdx (endLineIdx, buffer) - in - if Cursor.isCursorAtStartOfLine (buffer, endLineIdx) then - let - val endLineIdx = - if endLineIdx = #textLength buffer - 1 then endLineIdx - 1 - else endLineIdx + 1 + val endLineIdx = + if Cursor.isCursorAtStartOfLine (buffer, endLineIdx) then endLineIdx + 1 + else endLineIdx - val length = endLineIdx - startIdx - val initialMsg = Fn.initMsgs (startIdx, length, buffer) - val buffer = LineGap.delete (startIdx, length, buffer) - in - (* just need to reposition the cursor *) - moveCursorAfterDeletingLines (app, buffer, time, initialMsg, startIdx) - end - else - app + val length = endLineIdx - startIdx + val initialMsg = Fn.initMsgs (startIdx, length, buffer) + val buffer = LineGap.delete (startIdx, length, buffer) + in + (* just need to reposition the cursor *) + moveCursorAfterDeletingLines (app, buffer, time, initialMsg, startIdx) end fun deleteLineDown (app: app_type, count, time) =