From af900057b0263afee50b0967812a2c00e156a24a Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Sun, 20 Jul 2025 17:55:43 +0100 Subject: [PATCH] delete dead code --- fcore/cursor.sml | 327 ----------------------------------------------- 1 file changed, 327 deletions(-) diff --git a/fcore/cursor.sml b/fcore/cursor.sml index bc0a51f..97650a6 100644 --- a/fcore/cursor.sml +++ b/fcore/cursor.sml @@ -709,270 +709,12 @@ struct | (_, _) => (* nowhere to go rightward, so return cursorIdx *) cursorIdx end - fun isNextChrSpace (strPos, str, strTl) = - if strPos + 1 < String.size str then - let val chr = String.sub (str, strPos + 1) - in Char.isSpace chr - end - else - case strTl of - hd :: _ => let val chr = String.sub (hd, 0) in Char.isSpace chr end - | [] => false - - fun notIsNextChrSpace (strPos, str, strTl) = - let val isSpace = isNextChrSpace (strPos, str, strTl) - in not isSpace - end - - fun isNextChrNonBlank (strPos, str, strTl) = - if strPos + 1 < String.size str then - let - val chr = String.sub (str, strPos + 1) - val isNotBlank = - Char.isSpace chr orelse Char.isAlphaNum chr orelse chr = #"_" - in - not isNotBlank - end - else - case strTl of - hd :: _ => - let - val chr = String.sub (hd, 0) - val isNotBlank = - Char.isSpace chr orelse Char.isAlphaNum chr orelse chr = #"_" - in - not isNotBlank - end - | [] => false - - fun isNextChrAlphaNum (strPos, str, stl) = - if strPos + 1 < String.size str then - let val chr = String.sub (str, strPos + 1) - in Char.isAlphaNum chr orelse chr = #"_" - end - else - case stl of - hd :: _ => - let val chr = String.sub (str, 0) - in Char.isAlphaNum chr orelse chr = #"_" - end - | [] => false - - fun isPrevChrSpace (strPos, str, strTl) = - if strPos > 0 then - let val prevChr = String.sub (str, strPos - 1) - in Char.isSpace prevChr - end - else - case strTl of - hd :: _ => - let val prevChr = String.sub (hd, String.size hd - 1) - in Char.isSpace prevChr - end - | [] => false - - fun notIsPrevChrSpace (strPos, str, strTl) = - let val isSpace = isPrevChrSpace (strPos, str, strTl) - in not isSpace - end - - fun isPrevChrAlphaNum (strPos, str, strTl) = - if strPos > 0 then - let val chr = String.sub (str, strPos - 1) - in Char.isAlphaNum chr orelse chr = #"_" - end - else - case strTl of - hd :: _ => - let val chr = String.sub (hd, String.size hd - 1) - in Char.isAlphaNum chr orelse chr = #"_" - end - | [] => false - - fun isPrevChrNonBlank (strPos, str, strTl) = - if strPos > 0 then - let - val chr = String.sub (str, strPos - 1) - val isNotBlank = - Char.isSpace chr orelse Char.isAlphaNum chr orelse chr = #"_" - in - not isNotBlank - end - else - case strTl of - hd :: _ => - let - val chr = String.sub (hd, String.size hd - 1) - val isNotBlank = - Char.isSpace chr orelse Char.isAlphaNum chr orelse chr = #"_" - in - not isNotBlank - end - | [] => false - - fun helpNextWord (strPos, str, absIdx, strTl, lineTl) = - if strPos = String.size str then - case (strTl, lineTl) of - (shd :: stl, lhd :: ltl) => helpNextWord (0, shd, absIdx, stl, ltl) - | (_, _) => - (* reached end of lineGap; - * return last valid chr position *) - absIdx - 1 - else - let - val chr = String.sub (str, strPos) - in - if Char.isAlphaNum chr orelse chr = #"_" then - if isNextChrNonBlank (strPos, str, strTl) then absIdx + 1 - else helpNextWord (strPos + 1, str, absIdx + 1, strTl, lineTl) - else if Char.isSpace chr then - if notIsNextChrSpace (strPos, str, strTl) then - absIdx + 1 - else - (* nothing to do on space, except keep iterating *) - helpNextWord (strPos + 1, str, absIdx + 1, strTl, lineTl) - else (* chr is NON_BLANK. *) if isNextChrAlphaNum (strPos, str, strTl) then - absIdx + 1 - else - helpNextWord (strPos + 1, str, absIdx + 1, strTl, lineTl) - end - - fun toNextWord (lineGap: LineGap.t, cursorIdx, fNext) = - let - val {rightStrings, rightLines, idx = bufferIdx, ...} = lineGap - in - case (rightStrings, rightLines) of - (shd :: stl, lhd :: ltl) => - let - (* convert absolute cursorIdx to idx relative to hd string *) - val strIdx = cursorIdx - bufferIdx - in - if strIdx < String.size shd then - (* strIdx is in this string *) - fNext (strIdx, shd, cursorIdx, stl, ltl) - else - (* strIdx is in tl *) - (case (stl, ltl) of - (stlhd :: stltl, ltlhd :: ltltl) => - let val strIdx = strIdx - String.size shd - in fNext (strIdx, stlhd, cursorIdx, stltl, ltltl) - end - | (_, _) => cursorIdx) - end - | (_, _) => cursorIdx - end - (* equivalent of vi's 'w' command *) val nextWord = ViWordDfa.startOfNextWord (* equivalent of vi's 'W' command *) val nextWORD = ViWORDDfa.startOfNextWORD - fun helpPrevWord (strPos, str, absIdx, strTl, lineTl) = - if strPos < 0 then - case (strTl, lineTl) of - (shd :: stl, lhd :: ltl) => - helpPrevWord (String.size shd - 1, shd, absIdx, stl, ltl) - | (_, _) => - (* reached start of lineGap; - * return 0 which is start idx *) - 0 - else - let - val chr = String.sub (str, strPos) - in - if - Char.isAlphaNum chr orelse chr = #"_" - then - if - isPrevChrSpace (strPos, str, strTl) - orelse isPrevChrNonBlank (strPos, str, strTl) - then absIdx - else helpPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - else if - Char.isSpace chr - then - helpPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - else (* is NON_BLANK *) if - isPrevChrSpace (strPos, str, strTl) - orelse isPrevChrAlphaNum (strPos, str, strTl) - then - absIdx - else - helpPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - end - - fun helpEndOfPrevWord (strPos, str, absIdx, strTl, lineTl) = - if strPos < 0 then - case (strTl, lineTl) of - (shd :: stl, lhd :: ltl) => - helpEndOfPrevWord (String.size shd - 1, shd, absIdx, stl, ltl) - | (_, _) => 0 - else - let - val chr = String.sub (str, strPos) - in - if Char.isAlphaNum chr orelse chr = #"_" then - if isPrevChrNonBlank (strPos, str, strTl) then absIdx - 1 - else helpEndOfPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - else if Char.isSpace chr then - if isPrevChrSpace (strPos, str, strTl) then - helpEndOfPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - else - absIdx - 1 - else (* is NON_BLANK *) if isPrevChrAlphaNum (strPos, str, strTl) then - absIdx - 1 - else - helpEndOfPrevWord (strPos - 1, str, absIdx - 1, strTl, lineTl) - end - - fun startPrevWord (shd, strIdx, absIdx, stl, ltl, fPrev) = - (* we want to start iterating from previous character - * and ignore the character the cursor is at - * so check previous character *) - if strIdx > 0 then - fPrev (strIdx - 1, shd, absIdx - 1, stl, ltl) - else - case (stl, ltl) of - (stlhd :: stltl, ltlhd :: ltltl) => - let val prevIdx = String.size stlhd - 1 - in fPrev (prevIdx, stlhd, absIdx - 1, stltl, ltltl) - end - | (_, _) => (* tl is empty; just return idx 0 *) 0 - - fun toPrevWord (lineGap: LineGap.t, cursorIdx, fPrev) = - let - val - {rightStrings, rightLines, leftStrings, leftLines, idx = bufferIdx, ...} = - lineGap - in - case (rightStrings, rightLines) of - (shd :: stl, lhd :: ltl) => - let - (* convert absolute cursorIdx to idx relative to hd string *) - val strIdx = cursorIdx - bufferIdx - in - if strIdx < String.size shd then - (* strIdx is in this string *) - startPrevWord - (shd, strIdx, cursorIdx, leftStrings, leftLines, fPrev) - else - (* strIdx is in tl *) - (case (stl, ltl) of - (stlhd :: stltl, ltlhd :: ltltl) => - let - val strIdx = strIdx - String.size shd - val leftStrings = shd :: leftStrings - val leftLines = lhd :: leftLines - in - startPrevWord - (stlhd, strIdx, cursorIdx, leftStrings, leftLines, fPrev) - end - | (_, _) => cursorIdx) - end - | (_, _) => cursorIdx - end - (* equivalent of vi's 'b' command *) val prevWord = ViWordDfa.startOfCurrentWord @@ -985,75 +727,6 @@ struct (* equivalent of vi's 'gE' command *) val endOfPrevWORD = ViWORDDfa.endOfPrevWORD - fun helpEndOfWord (strPos, str, absIdx, stl, ltl) = - if strPos = String.size str then - case (stl, ltl) of - (shd :: stl, lhd :: ltl) => helpEndOfWord (0, shd, absIdx, stl, ltl) - | (_, _) => absIdx - 1 - else - let - val chr = String.sub (str, strPos) - in - if - Char.isAlphaNum chr orelse chr = #"_" - then - if - isNextChrSpace (strPos, str, stl) - orelse isNextChrNonBlank (strPos, str, stl) - then absIdx - else helpEndOfWord (strPos + 1, str, absIdx + 1, stl, ltl) - else if - Char.isSpace chr - then - helpEndOfWord (strPos + 1, str, absIdx + 1, stl, ltl) - else (* is NON_BLANK *) if - isNextChrSpace (strPos, str, stl) - orelse isNextChrAlphaNum (strPos, str, stl) - then - absIdx - else - helpEndOfWord (strPos + 1, str, absIdx + 1, stl, ltl) - end - - fun startEndOfWord (shd, strIdx, absIdx, stl, ltl, fEnd) = - (* we want to start iterating from next char after strIdx *) - if strIdx - 1 < String.size shd then - fEnd (strIdx + 1, shd, absIdx + 1, stl, ltl) - else - case (stl, ltl) of - (stlhd :: stltl, ltlhd :: ltltl) => - fEnd (0, stlhd, absIdx + 1, stltl, ltltl) - | (_, _) => (* tl is empty; just return absIdx *) absIdx - - fun toEndOfWord (lineGap: LineGap.t, cursorIdx, fEnd) = - let - val - {rightStrings, rightLines, leftStrings, leftLines, idx = bufferIdx, ...} = - lineGap - in - case (rightStrings, rightLines) of - (shd :: stl, lhd :: ltl) => - let - val strIdx = cursorIdx - bufferIdx - in - if strIdx < String.size shd then - (* strIdx is in this string *) - startEndOfWord (shd, strIdx, cursorIdx, stl, ltl, fEnd) - else - (* strIdx is in tl *) - (case (stl, ltl) of - (stlhd :: stltl, ltlhd :: ltltl) => - let - val strIdx = strIdx - String.size shd - in - startEndOfWord - (stlhd, strIdx, cursorIdx, stltl, ltltl, fEnd) - end - | (_, _) => cursorIdx) - end - | (_, _) => cursorIdx - end - (* equivalent of vi's `e` command *) val endOfWord = ViWordDfa.endOfCurrentWord