From 0c40cad77ae9e5a2099b91d8d88fc3b9ecc7c659 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sat, 7 Feb 2026 22:27:44 +0000 Subject: [PATCH] done replacing direct calls to 'LineGap.delete' with calls to 'SearchList.deleteBufferAndSearchList', so that the search list is also deleted from whenever the buffer is deleted from --- fcore/normal-mode/make-normal-delete.sml | 21 +++++++++++++-------- todo.md | 2 +- 2 files changed, 14 insertions(+), 9 deletions(-) diff --git a/fcore/normal-mode/make-normal-delete.sml b/fcore/normal-mode/make-normal-delete.sml index 7cfc620..e62e96d 100644 --- a/fcore/normal-mode/make-normal-delete.sml +++ b/fcore/normal-mode/make-normal-delete.sml @@ -889,16 +889,21 @@ struct fun deleteToStart (app: app_type, time) : AppType.app_type = let - val {cursorIdx, buffer, windowWidth, windowHeight, dfa, ...} = app + val {cursorIdx, buffer, windowWidth, windowHeight, dfa, searchList, ...} = + app val buffer = LineGap.goToIdx (cursorIdx, buffer) val cursorIdx = Cursor.viDlrForDelete (buffer, cursorIdx, 1) val buffer = LineGap.goToIdx (cursorIdx, buffer) val initialMsg = Fn.initMsgs (0, cursorIdx, buffer) - val buffer = LineGap.delete (0, cursorIdx, buffer) + val (buffer, searchList) = SearchList.deleteBufferAndSearchList + (0, cursorIdx, buffer, searchList, dfa) + val buffer = - if #textLength buffer = 0 then LineGap.fromString "\n" else buffer + (* todo: adjust searchList if we call SearchList.fromString *) + if #textLength buffer = 0 then LineGap.fromString "\n" + else buffer val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer) val (buffer, searchList) = SearchList.build (buffer, dfa) @@ -973,13 +978,13 @@ struct fun helpDeleteToMatch (app: app_type, low, high, time) = let - val {buffer, dfa, ...} = app + val {buffer, dfa, searchList, ...} = app val buffer = LineGap.goToIdx (high, buffer) val length = high - low val initialMsg = Fn.initMsgs (low, length, buffer) - val buffer = LineGap.delete (low, length, buffer) - val (buffer, searchList) = SearchList.build (buffer, dfa) + val (buffer, searchList) = SearchList.deleteBufferAndSearchList + (low, length, buffer, searchList, dfa) val buffer = LineGap.goToIdx (low, buffer) in @@ -1111,8 +1116,8 @@ struct val buffer = LineGap.goToIdx (high, buffer) val initialMsg = Fn.initMsgs (deleteLow, length, buffer) - val buffer = LineGap.delete (deleteLow, length, buffer) - val (buffer, searchList) = SearchList.build (buffer, dfa) + val (buffer, searchList) = SearchList.deleteBufferAndSearchList + (deleteLow, length, buffer, #searchList app, dfa) val buffer = LineGap.goToIdx (low, buffer) in diff --git a/todo.md b/todo.md index cc9773e..0790529 100644 --- a/todo.md +++ b/todo.md @@ -1,5 +1,5 @@ # To-do list -- Make sure that all delete function in make-normal-delete.sml also delete from searchList +- Address to-do notes in make-normal-delete.sml (update searchList in light of insertion) - Add normal-delete tests for each motion, checking that searchList is as expected - Add tests for other yank motoins - Tests should be based on existing tests for delete-motions, and in the same order.