create text builder with highlight

This commit is contained in:
2025-09-12 10:42:13 +01:00
parent b6de188f7d
commit 9254fa9f5c
4 changed files with 317 additions and 234 deletions

View File

@@ -34,7 +34,7 @@ struct
(* fw/fh = float window width and float window height *)
, fw: Real32.real
, fh: Real32.real
, msgs: MailboxType.t list
, searchList: int vector
, searchLen: int
}
@@ -93,4 +93,20 @@ struct
, #cursorOnCharG env
, #cursorOnCharB env
)
fun isInSearchRange
(absIdx, searchPos, {searchList, searchLen, ...}: env_data) =
let val searchIdx = Vector.sub (searchList, searchPos)
in absIdx >= searchIdx andalso absIdx < searchIdx + searchLen
end
fun isAfterSearchRange
(absIdx, searchPos, {searchList, searchLen, ...}: env_data) =
let val searchIdx = Vector.sub (searchList, searchPos)
in absIdx >= searchIdx + searchLen
end
fun advanceSearchPos (absIdx, searchPos, env) =
if isAfterSearchRange (absIdx, searchPos, env) then searchPos + 1
else searchPos
end