change type of SEARCH message to take a DFA, instead of a searchString

This commit is contained in:
2025-10-08 05:54:19 +01:00
parent 06106f5de8
commit 5c8e74ac11
5 changed files with 22 additions and 27 deletions

View File

@@ -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) =

View File

@@ -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)

View File

@@ -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)

View File

@@ -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

View File

@@ -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