move buffer around when calling 'SearchList.buildRange'
This commit is contained in:
@@ -17,7 +17,8 @@ struct
|
||||
val msgs = SEARCH (buffer, searchString, time) :: msgs
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList = SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (low, buffer)
|
||||
in
|
||||
@@ -239,7 +240,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, cursorIdx + 1111)
|
||||
|
||||
(* If we have deleted from the buffer so that cursorIdx
|
||||
@@ -717,7 +718,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, #searchString app, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, cursorIdx + 1111)
|
||||
|
||||
val cursorIdx = 0
|
||||
@@ -765,7 +766,8 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList = SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (low, buffer)
|
||||
in
|
||||
@@ -823,7 +825,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (low, buffer)
|
||||
@@ -855,7 +857,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (low, buffer)
|
||||
@@ -884,7 +886,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (origLow, buffer)
|
||||
@@ -998,7 +1000,7 @@ struct
|
||||
val initialMsg = SEARCH (buffer, searchString, time) :: initialMsg
|
||||
|
||||
val buffer = LineGap.goToIdx (low - 1111, buffer)
|
||||
val searchList =
|
||||
val (buffer, searchList) =
|
||||
SearchList.buildRange (buffer, searchString, low + 1111)
|
||||
|
||||
val buffer = LineGap.goToIdx (low, buffer)
|
||||
|
||||
@@ -29,7 +29,8 @@ struct
|
||||
val searchCursorIdx = searchCursorIdx + 1
|
||||
|
||||
val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer)
|
||||
val tempSearchList = buildTempSearchList (searchString, buffer, cursorIdx)
|
||||
val (buffer, tempSearchList) =
|
||||
buildTempSearchList (searchString, buffer, cursorIdx)
|
||||
in
|
||||
NormalSearchFinish.onSearchChanged
|
||||
( app
|
||||
@@ -120,7 +121,7 @@ struct
|
||||
|
||||
val {cursorIdx, buffer, ...} = app
|
||||
val buffer = LineGap.goToIdx (cursorIdx - 1111, buffer)
|
||||
val tempSearchList =
|
||||
val (buffer, tempSearchList) =
|
||||
buildTempSearchList (searchString, buffer, cursorIdx)
|
||||
in
|
||||
NormalSearchFinish.onSearchChanged
|
||||
|
||||
@@ -242,9 +242,9 @@ struct
|
||||
SOME nfa =>
|
||||
Nfa.getMatchesInRange
|
||||
(#idx buffer, finishIdx, buffer : LineGap.t, nfa)
|
||||
| NONE => PersistentVector.empty
|
||||
| NONE => (buffer, PersistentVector.empty)
|
||||
else
|
||||
PersistentVector.empty
|
||||
(buffer, PersistentVector.empty)
|
||||
|
||||
fun nextMatch (cursorIdx, searchList, count) = raise Fail "todo: reimplement"
|
||||
|
||||
|
||||
@@ -171,11 +171,12 @@ struct
|
||||
local
|
||||
fun loop (pos, buffer, nfa, origNfa, startPos, acc, lastIdx) =
|
||||
if pos = #textLength buffer then
|
||||
acc
|
||||
(buffer, acc)
|
||||
else if pos > lastIdx then
|
||||
acc
|
||||
(buffer, acc)
|
||||
else
|
||||
let
|
||||
val buffer = LineGap.goToIdx (pos, buffer)
|
||||
val chr = LineGap.sub (pos, buffer)
|
||||
val (nfa, state) = rebuild (nfa, chr, pos)
|
||||
in
|
||||
@@ -202,7 +203,6 @@ struct
|
||||
loop (pos + 1, buffer, nfa, origNfa, startPos, acc, lastIdx)
|
||||
end
|
||||
in
|
||||
(* Prerequisite: move buffer to 'start' parameter before calling *)
|
||||
fun getMatchesInRange (startIdx, finishIdx, buffer: LineGap.t, nfa) =
|
||||
loop (startIdx, buffer, nfa, nfa, 0, PersistentVector.empty, finishIdx)
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user