extract a function which has commonly used code
This commit is contained in:
@@ -435,9 +435,32 @@ struct
|
|||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
fun finishAfterDeleteInside (app: app_type, origLow, high) =
|
||||||
|
if origLow = high then
|
||||||
|
Finish.clearMode app
|
||||||
|
else
|
||||||
|
let
|
||||||
|
val {cursorIdx, buffer, searchString, ...} = app
|
||||||
|
val low = origLow + 1
|
||||||
|
val length = high - low
|
||||||
|
val buffer = LineGap.delete (low, length, buffer)
|
||||||
|
|
||||||
|
val buffer = LineGap.goToEnd buffer
|
||||||
|
val initialMsg = [SEARCH (buffer, searchString)]
|
||||||
|
|
||||||
|
val buffer = LineGap.goToIdx (low + 777, buffer)
|
||||||
|
val searchList =
|
||||||
|
SearchList.buildRange (buffer, searchString, low - 777)
|
||||||
|
|
||||||
|
val buffer = LineGap.goToIdx (origLow, buffer)
|
||||||
|
in
|
||||||
|
Finish.buildTextAndClear
|
||||||
|
(app, buffer, origLow, searchList, initialMsg)
|
||||||
|
end
|
||||||
|
|
||||||
fun deleteInsideChrOpen (app: app_type, chr) =
|
fun deleteInsideChrOpen (app: app_type, chr) =
|
||||||
let
|
let
|
||||||
val {cursorIdx, buffer, searchString, ...} = app
|
val {cursorIdx, buffer, ...} = app
|
||||||
|
|
||||||
val start = cursorIdx + 1
|
val start = cursorIdx + 1
|
||||||
val buffer = LineGap.goToIdx (start, buffer)
|
val buffer = LineGap.goToIdx (start, buffer)
|
||||||
@@ -446,31 +469,12 @@ struct
|
|||||||
val buffer = LineGap.goToIdx (origLow, buffer)
|
val buffer = LineGap.goToIdx (origLow, buffer)
|
||||||
val high = Cursor.matchPair (buffer, origLow)
|
val high = Cursor.matchPair (buffer, origLow)
|
||||||
in
|
in
|
||||||
if origLow = high then
|
finishAfterDeleteInside (app, origLow, high)
|
||||||
Finish.clearMode app
|
|
||||||
else
|
|
||||||
let
|
|
||||||
val low = origLow + 1
|
|
||||||
val length = high - low
|
|
||||||
val buffer = LineGap.delete (low, length, buffer)
|
|
||||||
|
|
||||||
val buffer = LineGap.goToEnd buffer
|
|
||||||
val initialMsg = [SEARCH (buffer, searchString)]
|
|
||||||
|
|
||||||
val buffer = LineGap.goToIdx (low + 777, buffer)
|
|
||||||
val searchList =
|
|
||||||
SearchList.buildRange (buffer, searchString, low - 777)
|
|
||||||
|
|
||||||
val buffer = LineGap.goToIdx (origLow, buffer)
|
|
||||||
in
|
|
||||||
Finish.buildTextAndClear
|
|
||||||
(app, buffer, origLow, searchList, initialMsg)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
|
|
||||||
fun deleteInsideChrClose (app: app_type, chr) =
|
fun deleteInsideChrClose (app: app_type, chr) =
|
||||||
let
|
let
|
||||||
val {cursorIdx, buffer, searchString, ...} = app
|
val {cursorIdx, buffer, ...} = app
|
||||||
|
|
||||||
val start = Int.max (cursorIdx - 1, 0)
|
val start = Int.max (cursorIdx - 1, 0)
|
||||||
val buffer = LineGap.goToIdx (start, buffer)
|
val buffer = LineGap.goToIdx (start, buffer)
|
||||||
@@ -479,25 +483,6 @@ struct
|
|||||||
val buffer = LineGap.goToIdx (high, buffer)
|
val buffer = LineGap.goToIdx (high, buffer)
|
||||||
val origLow = Cursor.matchPair (buffer, high)
|
val origLow = Cursor.matchPair (buffer, high)
|
||||||
in
|
in
|
||||||
if origLow = high then
|
finishAfterDeleteInside (app, origLow, high)
|
||||||
Finish.clearMode app
|
|
||||||
else
|
|
||||||
let
|
|
||||||
val low = origLow + 1
|
|
||||||
val length = high - low
|
|
||||||
val buffer = LineGap.delete (low, length, buffer)
|
|
||||||
|
|
||||||
val buffer = LineGap.goToEnd buffer
|
|
||||||
val initialMsg = [SEARCH (buffer, searchString)]
|
|
||||||
|
|
||||||
val buffer = LineGap.goToIdx (low + 777, buffer)
|
|
||||||
val searchList =
|
|
||||||
SearchList.buildRange (buffer, searchString, low - 777)
|
|
||||||
|
|
||||||
val buffer = LineGap.goToIdx (origLow, buffer)
|
|
||||||
in
|
|
||||||
Finish.buildTextAndClear
|
|
||||||
(app, buffer, origLow, searchList, initialMsg)
|
|
||||||
end
|
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user