remove debugging print statements from line_gap.sml
This commit is contained in:
210
src/line_gap.sml
210
src/line_gap.sml
@@ -54,8 +54,10 @@ struct
|
||||
}
|
||||
|
||||
(* TEST CODE *)
|
||||
local
|
||||
fun lineBreaksToString vec =
|
||||
(Vector.foldr (fn (el, acc) => Int.toString el ^ ", " ^ acc) "" vec) ^ "\n"
|
||||
(Vector.foldr (fn (el, acc) => Int.toString el ^ ", " ^ acc) "" vec)
|
||||
^ "\n"
|
||||
|
||||
fun checkLineBreaks (v1, v2) =
|
||||
if v1 = v2 then
|
||||
@@ -91,7 +93,7 @@ struct
|
||||
end
|
||||
end
|
||||
| (_, _) => print "verified lines; no problems\n"
|
||||
|
||||
in
|
||||
fun verifyLines (buffer: t) =
|
||||
let
|
||||
val (strings, lines) =
|
||||
@@ -104,14 +106,16 @@ struct
|
||||
in
|
||||
verifyLineList (strings, lines)
|
||||
end
|
||||
end
|
||||
|
||||
local
|
||||
fun calcIndexList (accIdx, lst) =
|
||||
case lst of
|
||||
[] => accIdx
|
||||
| hd :: tl => calcIndexList (String.size hd + accIdx, tl)
|
||||
|
||||
fun calcIndexStart lst = calcIndexList (0, lst)
|
||||
|
||||
in
|
||||
fun verifyIndex (buffer: t) =
|
||||
let
|
||||
val bufferIdx = #idx buffer
|
||||
@@ -138,7 +142,7 @@ struct
|
||||
in
|
||||
()
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
local
|
||||
fun helpToString (acc, input) =
|
||||
@@ -199,14 +203,10 @@ struct
|
||||
local
|
||||
fun forwardLinearSearch (findNum, idx, lines) =
|
||||
if idx = Vector.length lines then
|
||||
let val _ = print "203\n"
|
||||
in idx
|
||||
end
|
||||
idx
|
||||
else
|
||||
let
|
||||
val _ = print "before curval\n"
|
||||
val curVal = Vector.sub (lines, idx)
|
||||
val _ = print (Int.toString curVal ^ "\n")
|
||||
in
|
||||
if curVal > findNum then idx
|
||||
else forwardLinearSearch (findNum, idx + 1, lines)
|
||||
@@ -219,7 +219,6 @@ struct
|
||||
if high >= low then
|
||||
let
|
||||
val midVal = Vector.sub (lines, mid)
|
||||
val _ = print "218\n"
|
||||
in
|
||||
if midVal = findNum then
|
||||
mid
|
||||
@@ -228,10 +227,10 @@ struct
|
||||
else
|
||||
helpBinSearch (findNum, lines, low, mid - 1)
|
||||
end
|
||||
else if mid >= 0 then
|
||||
forwardLinearSearch (findNum, mid, lines)
|
||||
else
|
||||
let val _ = print "229\n"
|
||||
in if mid >= 0 then forwardLinearSearch (findNum, mid, lines) else 0
|
||||
end
|
||||
0
|
||||
end
|
||||
in
|
||||
fun forwardBinSearch (findNum, lines) =
|
||||
@@ -1025,7 +1024,6 @@ struct
|
||||
in
|
||||
fun insert (idx, newString, buffer: t) =
|
||||
let
|
||||
val _ = print "inserting...\n"
|
||||
val newLines = countLineBreaks newString
|
||||
in
|
||||
ins
|
||||
@@ -1042,9 +1040,6 @@ struct
|
||||
end
|
||||
end
|
||||
|
||||
fun println str =
|
||||
print (str ^ "\n")
|
||||
|
||||
(* Delete function and helper functions for it. *)
|
||||
local
|
||||
fun deleteRightFromHere
|
||||
@@ -1061,14 +1056,9 @@ struct
|
||||
(rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) =>
|
||||
let
|
||||
val nextIdx = moveIdx + String.size rightStringsHd
|
||||
val _ = println "1021"
|
||||
val _ = println ("origIdx = " ^ Int.toString origIdx)
|
||||
in
|
||||
if nextIdx < finish then
|
||||
(* Keep moving right. *)
|
||||
let
|
||||
val _ = println "971"
|
||||
in
|
||||
deleteRightFromHere
|
||||
( origIdx
|
||||
, origLine
|
||||
@@ -1079,39 +1069,28 @@ struct
|
||||
, rightStringsTl
|
||||
, rightLinesTl
|
||||
)
|
||||
end
|
||||
else if nextIdx > finish then
|
||||
(* Base case: delete from the start of this string and stop moving. *)
|
||||
let
|
||||
(* Delete part of string. *)
|
||||
val newStrStart = finish - moveIdx
|
||||
val _ = println
|
||||
("old len = " ^ Int.toString (String.size rightStringsHd))
|
||||
val _ = println
|
||||
("new len = "
|
||||
^ Int.toString (String.size rightStringsHd - newStrStart))
|
||||
val newStr = String.substring
|
||||
( rightStringsHd
|
||||
, newStrStart
|
||||
, String.size rightStringsHd - newStrStart
|
||||
)
|
||||
val _ = println
|
||||
("actual len = " ^ Int.toString (String.size newStr))
|
||||
|
||||
(* Delete from line vector if we need to. *)
|
||||
val newLines =
|
||||
if Vector.length rightLinesHd > 0 then
|
||||
let
|
||||
val _ = println "996"
|
||||
val lineDeleteStart =
|
||||
forwardBinSearch (newStrStart, rightLinesHd)
|
||||
val _ = println ("1100 = " ^ Int.toString newStrStart)
|
||||
in
|
||||
if lineDeleteStart < Vector.length rightLinesHd then
|
||||
let
|
||||
val lineDeleteLength =
|
||||
Vector.length rightLinesHd - lineDeleteStart
|
||||
val _ = println "1105"
|
||||
in
|
||||
Vector.tabulate (lineDeleteLength, fn idx =>
|
||||
Vector.sub (rightLinesHd, idx + lineDeleteStart)
|
||||
@@ -1122,7 +1101,6 @@ struct
|
||||
end
|
||||
else
|
||||
rightLinesHd (* empty vector *)
|
||||
val _ = println "1073"
|
||||
in
|
||||
{ idx = origIdx
|
||||
, line = origLine
|
||||
@@ -1134,9 +1112,6 @@ struct
|
||||
end
|
||||
else
|
||||
(* Delete this node fully, but delete no further. *)
|
||||
let
|
||||
val _ = println "1085"
|
||||
in
|
||||
{ idx = origIdx
|
||||
, line = origLine
|
||||
, leftStrings = leftStrings
|
||||
@@ -1145,11 +1120,7 @@ struct
|
||||
, rightLines = rightLinesTl
|
||||
}
|
||||
end
|
||||
end
|
||||
| (_, _) =>
|
||||
let
|
||||
val _ = println "1095"
|
||||
in
|
||||
{ idx = 0
|
||||
, line = 0
|
||||
, leftStrings = []
|
||||
@@ -1157,7 +1128,6 @@ struct
|
||||
, rightStrings = rightStrings
|
||||
, rightLines = rightLines
|
||||
}
|
||||
end
|
||||
|
||||
fun moveRightAndDelete
|
||||
( start
|
||||
@@ -1173,7 +1143,6 @@ struct
|
||||
(rightStringsHd :: rightStringsTl, rightLinesHd :: rightLinesTl) =>
|
||||
let
|
||||
val nextIdx = curIdx + String.size rightStringsHd
|
||||
val _ = println "1113"
|
||||
in
|
||||
if nextIdx < start then
|
||||
(* Keep moving right.
|
||||
@@ -1194,7 +1163,6 @@ struct
|
||||
(* We can join the heads while staying in limit, so do so. *)
|
||||
let
|
||||
val newLeftStringsHd = leftStringsHd ^ rightStringsHd
|
||||
val _ = println "1076"
|
||||
val newLeftLinesHd: int vector =
|
||||
Vector.tabulate
|
||||
( Vector.length leftLinesHd
|
||||
@@ -1210,7 +1178,6 @@ struct
|
||||
)
|
||||
val newLeftStrings = newLeftStringsHd :: leftStringsTl
|
||||
val newLeftLines = newLeftLinesHd :: leftLinesTl
|
||||
val _ = println "1093"
|
||||
in
|
||||
moveRightAndDelete
|
||||
( start
|
||||
@@ -1225,9 +1192,6 @@ struct
|
||||
end
|
||||
else
|
||||
(* Can't join heads while staying in limit, so just cons. *)
|
||||
let
|
||||
val _ = println "1108"
|
||||
in
|
||||
moveRightAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1238,12 +1202,8 @@ struct
|
||||
, rightStringsTl
|
||||
, rightLinesTl
|
||||
)
|
||||
end
|
||||
| (_, _) =>
|
||||
(* Can't join heads while staying in limit, so just cons. *)
|
||||
let
|
||||
val _ = println "1121"
|
||||
in
|
||||
moveRightAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1253,15 +1213,12 @@ struct
|
||||
, rightLinesHd :: leftLines
|
||||
, rightStringsTl
|
||||
, rightLinesTl
|
||||
)
|
||||
end)
|
||||
))
|
||||
else if nextIdx > start then
|
||||
if nextIdx < finish then
|
||||
(* Start deleting from the end of this string,
|
||||
* and then continue deleting rightwards. *)
|
||||
let
|
||||
val _ = println "1263"
|
||||
val _ = println ("1263 idx = " ^ Int.toString curIdx)
|
||||
val length = start - curIdx
|
||||
val newString = String.substring (rightStringsHd, 0, length)
|
||||
|
||||
@@ -1272,7 +1229,6 @@ struct
|
||||
Vector.fromList []
|
||||
else
|
||||
let
|
||||
val _ = println "1141"
|
||||
val slice = VectorSlice.slice
|
||||
(rightLinesHd, 0, SOME (lineDeleteEnd + 1))
|
||||
in
|
||||
@@ -1293,9 +1249,6 @@ struct
|
||||
(* Join new string with left head. *)
|
||||
let
|
||||
val newLeftStringsHd = leftStringsHd ^ newString
|
||||
val _ = println "1163"
|
||||
val _ = println ("curIdx = " ^ Int.toString curIdx)
|
||||
val _ = println ("nextIdx = " ^ Int.toString nextIdx)
|
||||
val newLeftLinesHd =
|
||||
Vector.tabulate
|
||||
( Vector.length leftLinesHd
|
||||
@@ -1329,9 +1282,6 @@ struct
|
||||
else
|
||||
(* Can't join new string with left head
|
||||
* while staying in limit, so just cons. *)
|
||||
let
|
||||
val _ = println "1264"
|
||||
in
|
||||
deleteRightFromHere
|
||||
( curIdx + String.size newString
|
||||
, curLine + Vector.length newLines
|
||||
@@ -1342,11 +1292,8 @@ struct
|
||||
, rightStringsTl
|
||||
, rightLinesTl
|
||||
)
|
||||
end
|
||||
|
||||
| (_, _) =>
|
||||
let
|
||||
val _ = println "1276"
|
||||
in
|
||||
deleteRightFromHere
|
||||
( nextIdx
|
||||
, nextLine
|
||||
@@ -1356,8 +1303,7 @@ struct
|
||||
, newLines :: leftLines
|
||||
, rightStringsTl
|
||||
, rightLinesTl
|
||||
)
|
||||
end)
|
||||
))
|
||||
end
|
||||
else if nextIdx > finish then
|
||||
(* Base case: delete from the middle part of this string. *)
|
||||
@@ -1371,42 +1317,29 @@ struct
|
||||
Vector.fromList []
|
||||
else
|
||||
let
|
||||
val _ = println "1224"
|
||||
val _ = println
|
||||
("vlen = " ^ Int.toString (Vector.length rightLinesHd))
|
||||
val _ = println
|
||||
("sub1LineEnd = " ^ Int.toString sub1LineEnd)
|
||||
val slice = VectorSlice.slice
|
||||
(rightLinesHd, 0, SOME (sub1LineEnd + 1))
|
||||
in
|
||||
VectorSlice.vector slice
|
||||
end
|
||||
|
||||
val _ = println "1356"
|
||||
val sub2Start = finish - curIdx
|
||||
val sub2 = String.substring
|
||||
( rightStringsHd
|
||||
, sub2Start
|
||||
, String.size rightStringsHd - sub2Start
|
||||
)
|
||||
val _ = println "1366"
|
||||
val sub2LineStart = forwardBinSearch (sub2Start, rightLinesHd)
|
||||
val _ = println "1368"
|
||||
val sub2Lines =
|
||||
if sub2LineStart < Vector.length rightLinesHd then
|
||||
let
|
||||
val _ = println "1370"
|
||||
in
|
||||
Vector.tabulate
|
||||
( Vector.length rightLinesHd - sub2LineStart
|
||||
, fn idx =>
|
||||
Vector.sub (rightLinesHd, idx + sub2LineStart)
|
||||
- (String.size rightStringsHd - String.size sub2)
|
||||
)
|
||||
end
|
||||
else
|
||||
Vector.fromList []
|
||||
val _ = println "1326"
|
||||
in
|
||||
{ idx = curIdx + sub1Length
|
||||
, line = curLine + Vector.length sub1Lines
|
||||
@@ -1428,14 +1361,11 @@ struct
|
||||
Vector.fromList []
|
||||
else
|
||||
let
|
||||
val _ = println "1390"
|
||||
val _ = println ("midpoint = " ^ Int.toString midpoint)
|
||||
val slice = VectorSlice.slice
|
||||
(rightLinesHd, 0, SOME (midpoint + 1))
|
||||
in
|
||||
VectorSlice.vector slice
|
||||
end
|
||||
val _ = println "1340"
|
||||
in
|
||||
{ idx = curIdx + strLength
|
||||
, line = curLine + Vector.length newLeftLines
|
||||
@@ -1452,10 +1382,6 @@ struct
|
||||
* and it may extend beyond the current head.
|
||||
* So pass the rightStringsTl and rightLinesTl to a function that
|
||||
* will delete rightwards if it needs to, or else terminates. *)
|
||||
let
|
||||
val _ = println "1373"
|
||||
val _ = println ("1444 = " ^ Int.toString (finish - start))
|
||||
in
|
||||
deleteRightFromHere
|
||||
( nextIdx
|
||||
, curLine + Vector.length rightLinesHd
|
||||
@@ -1467,11 +1393,7 @@ struct
|
||||
, rightLinesTl
|
||||
)
|
||||
end
|
||||
end
|
||||
| (_, _) =>
|
||||
let
|
||||
val _ = println "1386"
|
||||
in
|
||||
{ idx = curIdx
|
||||
, line = curLine
|
||||
, leftStrings = leftStrings
|
||||
@@ -1479,7 +1401,6 @@ struct
|
||||
, rightStrings = rightStrings
|
||||
, rightLines = rightLines
|
||||
}
|
||||
end
|
||||
|
||||
fun deleteLeftFromHere
|
||||
(start, curIdx, curLine, leftStrings, leftLines, rightStrings, rightLines) =
|
||||
@@ -1488,13 +1409,9 @@ struct
|
||||
let
|
||||
val prevIdx = curIdx - String.size leftStringsHd
|
||||
val prevLine = curLine - Vector.length leftLinesHd
|
||||
val _ = println "1513"
|
||||
in
|
||||
if start < prevIdx then
|
||||
(* Continue deleting leftward. *)
|
||||
let
|
||||
val _ = println "1449"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
, prevIdx
|
||||
@@ -1504,7 +1421,6 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
end
|
||||
else if start > prevIdx then
|
||||
(* Base case: delete end part of this string and return. *)
|
||||
let
|
||||
@@ -1515,9 +1431,6 @@ struct
|
||||
let
|
||||
val midpoint = binSearch
|
||||
(String.size newStr - 1, leftLinesHd)
|
||||
val _ = println "1461"
|
||||
val _ = println
|
||||
("vlen = " ^ (Int.toString (Vector.length leftLinesHd)))
|
||||
val slice = VectorSlice.slice
|
||||
(leftLinesHd, 0, SOME (midpoint + 1))
|
||||
in
|
||||
@@ -1525,7 +1438,6 @@ struct
|
||||
end
|
||||
else
|
||||
Vector.fromList []
|
||||
val _ = println "1433"
|
||||
in
|
||||
{ idx = prevIdx + String.size newStr
|
||||
, line = prevLine + Vector.length newLines
|
||||
@@ -1538,9 +1450,6 @@ struct
|
||||
else
|
||||
(* start = prevIdx
|
||||
* Base case: Remove leftStrings/LinesHd without removing any further. *)
|
||||
let
|
||||
val _ = println "1446"
|
||||
in
|
||||
{ idx = prevIdx
|
||||
, line = prevLine
|
||||
, leftStrings = leftStringsTl
|
||||
@@ -1549,11 +1458,7 @@ struct
|
||||
, rightLines = rightLines
|
||||
}
|
||||
end
|
||||
end
|
||||
| (_, _) =>
|
||||
let
|
||||
val _ = println "1456"
|
||||
in
|
||||
{ idx = curIdx
|
||||
, line = curLine
|
||||
, leftStrings = leftStrings
|
||||
@@ -1561,7 +1466,6 @@ struct
|
||||
, rightStrings = rightStrings
|
||||
, rightLines = rightLines
|
||||
}
|
||||
end
|
||||
|
||||
fun deleteFromLetAndRight
|
||||
( start
|
||||
@@ -1591,7 +1495,6 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
val _ = println "1600"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
@@ -1617,7 +1520,6 @@ struct
|
||||
case (leftStrings, leftLines) of
|
||||
(leftStringsHd :: leftStringsTl, leftLinesHd :: leftLinesTl) =>
|
||||
let
|
||||
val _ = println "1625"
|
||||
val prevIdx = curIdx - String.size leftStringsHd
|
||||
in
|
||||
if prevIdx > finish then
|
||||
@@ -1641,7 +1543,6 @@ struct
|
||||
(* Can join while staying in limit, so do join. *)
|
||||
let
|
||||
val newRightStringsHd = leftStringsHd ^ rightStringsHd
|
||||
val _ = println "1572"
|
||||
val newRightLinesHd =
|
||||
Vector.tabulate
|
||||
( Vector.length leftLinesHd
|
||||
@@ -1657,9 +1558,6 @@ struct
|
||||
)
|
||||
val newRightStrings = newRightStringsHd :: rightStringsTl
|
||||
val newRightLines = newRightLinesHd :: rightLinesTl
|
||||
in
|
||||
let
|
||||
val _ = println "1595"
|
||||
in
|
||||
moveLeftAndDelete
|
||||
( start
|
||||
@@ -1672,12 +1570,8 @@ struct
|
||||
, newRightLines
|
||||
)
|
||||
end
|
||||
end
|
||||
else
|
||||
(* Cannot join while staying in limit, so don't. *)
|
||||
let
|
||||
val _ = println "1609"
|
||||
in
|
||||
moveLeftAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1688,13 +1582,9 @@ struct
|
||||
, leftStringsHd :: rightStrings
|
||||
, leftLinesHd :: rightLines
|
||||
)
|
||||
end
|
||||
| (_, _) =>
|
||||
(* Base case: reached empty list while trying to move leftwards.
|
||||
* Cannot do anything so just return. *)
|
||||
let
|
||||
val _ = println "1594"
|
||||
in
|
||||
moveLeftAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1704,8 +1594,7 @@ struct
|
||||
, leftLinesTl
|
||||
, [leftStringsHd]
|
||||
, [leftLinesHd]
|
||||
)
|
||||
end)
|
||||
))
|
||||
else if prevIdx < finish then
|
||||
if prevIdx > start then
|
||||
(* Delete from start point of this string,
|
||||
@@ -1722,23 +1611,18 @@ struct
|
||||
val midpoint = forwardBinSearch (stringStart, leftLinesHd)
|
||||
in
|
||||
if midpoint >= 0 then
|
||||
let
|
||||
val _ = println "1640"
|
||||
in
|
||||
Vector.tabulate
|
||||
( Vector.length leftLinesHd - midpoint
|
||||
, fn idx =>
|
||||
Vector.sub (leftLinesHd, idx + midpoint)
|
||||
- stringStart
|
||||
)
|
||||
end
|
||||
else
|
||||
Vector.fromList []
|
||||
end
|
||||
val newRightStrings = newString :: rightStrings
|
||||
val newRightLines = newLines :: rightLines
|
||||
val prevLine = curLine - Vector.length leftLinesHd
|
||||
val _ = println "1632"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
@@ -1772,12 +1656,6 @@ struct
|
||||
in
|
||||
if midpoint >= 0 then
|
||||
let
|
||||
val _ = println "1684"
|
||||
val _ = println
|
||||
("midpoint: " ^ Int.toString midpoint)
|
||||
val _ = println
|
||||
("lenth: "
|
||||
^ Int.toString (Vector.length leftLinesHd))
|
||||
val slice = VectorSlice.slice
|
||||
(leftLinesHd, 0, SOME (midpoint + 1))
|
||||
in
|
||||
@@ -1788,16 +1666,10 @@ struct
|
||||
end
|
||||
else
|
||||
leftLinesHd
|
||||
val _ = println "1791; base case"
|
||||
|
||||
val sub2Lines =
|
||||
let
|
||||
val midpoint = forwardBinSearch (sub2Start, leftLinesHd)
|
||||
val _ = println "1697"
|
||||
val _ = println
|
||||
("leftLinesHd: "
|
||||
^ Int.toString (Vector.length leftLinesHd))
|
||||
val _ = println ("midpoint: " ^ Int.toString (midpoint))
|
||||
in
|
||||
if midpoint < Vector.length leftLinesHd then
|
||||
Vector.tabulate
|
||||
@@ -1810,7 +1682,6 @@ struct
|
||||
Vector.fromList []
|
||||
end
|
||||
|
||||
val _ = println "1829; base case"
|
||||
in
|
||||
{ idx = prevIdx + sub1Length
|
||||
, line =
|
||||
@@ -1835,7 +1706,6 @@ struct
|
||||
val lines =
|
||||
let
|
||||
val lineStart = forwardBinSearch (strStart, leftLinesHd)
|
||||
val _ = println "1733"
|
||||
in
|
||||
if lineStart < Vector.length leftLinesHd then
|
||||
Vector.tabulate
|
||||
@@ -1847,7 +1717,6 @@ struct
|
||||
else
|
||||
Vector.fromList []
|
||||
end
|
||||
val _ = println "1741"
|
||||
in
|
||||
{ idx = prevIdx + String.size str
|
||||
, line =
|
||||
@@ -1891,7 +1760,6 @@ struct
|
||||
, idx - Vector.length leftLinesHd
|
||||
) + String.size leftStringsHd
|
||||
)
|
||||
val _ = println "1776"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
@@ -1905,9 +1773,6 @@ struct
|
||||
end
|
||||
else
|
||||
(* Cannot join while staying in limit. *)
|
||||
let
|
||||
val _ = print "1922"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
, prevIdx
|
||||
@@ -1917,12 +1782,8 @@ struct
|
||||
, leftStringsHd :: rightStrings
|
||||
, leftLinesHd :: rightLines
|
||||
)
|
||||
end
|
||||
| (_, _) =>
|
||||
(* Right strings and lines are empty, so can't join. *)
|
||||
let
|
||||
val _ = println "1814"
|
||||
in
|
||||
deleteLeftFromHere
|
||||
( start
|
||||
, prevIdx
|
||||
@@ -1931,15 +1792,10 @@ struct
|
||||
, leftLinesTl
|
||||
, [leftStringsHd]
|
||||
, [leftLinesHd]
|
||||
)
|
||||
|
||||
end)
|
||||
))
|
||||
end
|
||||
| (_, _) =>
|
||||
(* Can't move further leftward so just return. *)
|
||||
let
|
||||
val _ = println "1825"
|
||||
in
|
||||
{ idx = 0
|
||||
, line = 0
|
||||
, leftStrings = []
|
||||
@@ -1947,7 +1803,6 @@ struct
|
||||
, rightStrings = rightStrings
|
||||
, rightLines = rightLines
|
||||
}
|
||||
end
|
||||
|
||||
fun del
|
||||
( start
|
||||
@@ -1960,9 +1815,6 @@ struct
|
||||
, rightLines
|
||||
) =
|
||||
if start > curIdx then
|
||||
let
|
||||
val _ = println "1963"
|
||||
in
|
||||
moveRightAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1973,12 +1825,8 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
end
|
||||
else if start < curIdx then
|
||||
if finish <= curIdx then
|
||||
let
|
||||
val _ = println "1976"
|
||||
in
|
||||
moveLeftAndDelete
|
||||
( start
|
||||
, finish
|
||||
@@ -1989,11 +1837,7 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
end
|
||||
else
|
||||
let
|
||||
val _ = println "1988"
|
||||
in
|
||||
deleteFromLetAndRight
|
||||
( start
|
||||
, finish
|
||||
@@ -2004,11 +1848,7 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
end
|
||||
else
|
||||
let
|
||||
val _ = println "2000"
|
||||
in
|
||||
deleteRightFromHere
|
||||
( curIdx
|
||||
, curLine
|
||||
@@ -2019,23 +1859,9 @@ struct
|
||||
, rightStrings
|
||||
, rightLines
|
||||
)
|
||||
end
|
||||
in
|
||||
fun delete (start, length, buffer: t) =
|
||||
if length > 0 then
|
||||
let
|
||||
val _ = println "deleting..."
|
||||
val _ = println (String.concat
|
||||
[ "length = "
|
||||
, Int.toString length
|
||||
, "| start = "
|
||||
, Int.toString start
|
||||
, "| start + length = "
|
||||
, Int.toString (start + length)
|
||||
, "| bufferIdx = "
|
||||
, Int.toString (#idx buffer)
|
||||
])
|
||||
in
|
||||
del
|
||||
( start
|
||||
, start + length
|
||||
@@ -2046,9 +1872,7 @@ struct
|
||||
, #rightStrings buffer
|
||||
, #rightLines buffer
|
||||
)
|
||||
end
|
||||
else
|
||||
buffer
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user