From 5c8e74ac1170f2b89bb7601b398ec66b7021deff Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Wed, 8 Oct 2025 05:54:19 +0100 Subject: [PATCH] change type of SEARCH message to take a DFA, instead of a searchString --- fcore/normal-mode/make-normal-delete.sml | 23 ++++++++--------------- fcore/normal-mode/normal-mode.sml | 8 ++++---- fcore/normal-mode/normal-search-mode.sml | 10 +++++----- message-types/search-msg.sml | 3 ++- shell/search-thread.sml | 5 +++-- 5 files changed, 22 insertions(+), 27 deletions(-) diff --git a/fcore/normal-mode/make-normal-delete.sml b/fcore/normal-mode/make-normal-delete.sml index 22a0126..31d460f 100644 --- a/fcore/normal-mode/make-normal-delete.sml +++ b/fcore/normal-mode/make-normal-delete.sml @@ -13,7 +13,7 @@ struct let val buffer = LineGap.goToIdx (low, buffer) val buffer = LineGap.goToStart buffer - val msgs = SEARCH (buffer, raise Fail "searchString", time) :: msgs + val msgs = SEARCH (buffer, #dfa app, time) :: msgs val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = @@ -235,8 +235,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, #dfa app, time) :: initialMsg val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer) val (buffer, searchList) = @@ -705,8 +704,7 @@ struct val buffer = LineGap.delete (0, cursorIdx, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer) val (buffer, searchList) = @@ -754,8 +752,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = SearchList.buildRange (buffer, low + 1111, dfa) @@ -813,8 +810,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = @@ -846,8 +842,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = @@ -876,8 +871,7 @@ struct val buffer = LineGap.delete (low, length, buffer) val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = @@ -990,8 +984,7 @@ struct low val buffer = LineGap.goToStart buffer - val initialMsg = - SEARCH (buffer, raise Fail "searchString", time) :: initialMsg + val initialMsg = SEARCH (buffer, dfa, time) :: initialMsg val buffer = LineGap.goToIdx (low - 1111, buffer) val (buffer, searchList) = diff --git a/fcore/normal-mode/normal-mode.sml b/fcore/normal-mode/normal-mode.sml index b6e2aa8..70cefd7 100644 --- a/fcore/normal-mode/normal-mode.sml +++ b/fcore/normal-mode/normal-mode.sml @@ -31,9 +31,9 @@ struct let open MailboxType - val {cursorIdx = origCursorIdx, ...} = app + val {cursorIdx = origCursorIdx, dfa, ...} = app val buffer = LineGap.goToStart buffer - val initialMsg = [SEARCH (buffer, raise Fail "searchString", time)] + val initialMsg = [SEARCH (buffer, dfa, time)] in NormalDelete.finishAfterDeletingBuffer (app, origCursorIdx, buffer, time, initialMsg) @@ -94,7 +94,7 @@ struct let open MailboxType - val {cursorIdx, buffer, ...} = app + val {cursorIdx, buffer, dfa, ...} = app val buffer = LineGap.goToIdx (cursorIdx, buffer) val lineStart = Cursor.vi0 (buffer, cursorIdx) @@ -127,7 +127,7 @@ struct loop (nextLine, buffer, count - 1) val buffer = LineGap.goToStart buffer - val initialMsg = [SEARCH (buffer, raise Fail "searchString", time)] + val initialMsg = [SEARCH (buffer, dfa, time)] in NormalDelete.finishAfterDeletingBuffer (app, newCursorIdx, buffer, time, initialMsg) diff --git a/fcore/normal-mode/normal-search-mode.sml b/fcore/normal-mode/normal-search-mode.sml index 124db0b..37b6ed9 100644 --- a/fcore/normal-mode/normal-search-mode.sml +++ b/fcore/normal-mode/normal-search-mode.sml @@ -77,8 +77,12 @@ struct , ... } = app + val dfa = + if caseSensitive then CaseSensitiveDfa.fromString searchString + else CaseInsensitiveDfa.fromString searchString + val buffer = LineGap.goToStart buffer - val initialMsg = [SEARCH (buffer, searchString, time)] + val initialMsg = [SEARCH (buffer, dfa, time)] (* move LineGap to first line displayed on screen *) val buffer = LineGap.goToLine (startLine, buffer) @@ -100,10 +104,6 @@ struct val msgs = DRAW drawMsg :: initialMsg val mode = NORMAL_MODE "" - - val dfa = - if caseSensitive then CaseSensitiveDfa.fromString searchString - else CaseInsensitiveDfa.fromString searchString in NormalSearchModeWith.returnToNormalMode (app, buffer, tempSearchList, startLine, mode, dfa, msgs) diff --git a/message-types/search-msg.sml b/message-types/search-msg.sml index 4cc0316..7c817c2 100644 --- a/message-types/search-msg.sml +++ b/message-types/search-msg.sml @@ -1 +1,2 @@ -structure SearchMsg = struct type t = LineGap.t * string * Time.time end +structure SearchMsg = +struct type t = LineGap.t * int vector vector * Time.time end diff --git a/shell/search-thread.sml b/shell/search-thread.sml index f8b4f25..5d0ed11 100644 --- a/shell/search-thread.sml +++ b/shell/search-thread.sml @@ -5,8 +5,9 @@ struct (* Prerequisite to sending message: move buffer to end. *) fun loop () = let - val (buffer, searchString, time) = Mailbox.recv SearchMailbox.mailbox - val searchList = SearchList.build (buffer, searchString) + val (buffer, dfa, time) = Mailbox.recv SearchMailbox.mailbox + val searchList = + raise Fail "todo: reimplement full builder for searchList" val msg = InputMsg.WITH_SEARCH_LIST (searchList, time) val () = InputMailbox.append msg in