add new function to calculate the startLine

This commit is contained in:
2025-09-11 17:30:49 +01:00
parent 580f014481
commit dfb7ecb867
2 changed files with 19 additions and 3 deletions

View File

@@ -17,7 +17,6 @@ struct
(* calculate scroll column *)
val buffer = LineGap.goToIdx (cursorIdx, buffer)
val visualScrollColumn = TextScroll.getScrollColumn (buffer, cursorIdx, windowWidth)
val () = print (Int.toString visualScrollColumn ^ "\n")
(* move LineGap to first line displayed on screen *)
val buffer = LineGap.goToLine (startLine, buffer)

View File

@@ -17,8 +17,25 @@ struct
else windowWidth div TC.xSpace
in
if columnDifference < howManyColumnsCanWeFit then 0
else
columnDifference - howManyColumnsCanWeFit
else columnDifference - howManyColumnsCanWeFit
end
end
fun getStartLine (prevLineNumber, cursorLine, windowHeight) =
if cursorLine <= prevLineNumber then
(* if cursorLine is prior or same as prevLineNumber,
* then use cursorLine as scroll-line-start *)
cursorLine
else
(* cursorLine > prevLineNumber *)
let
val howManyLinesWeCanFit = windowHeight div TC.ySpace
in
if prevLineNumber + howManyLinesWeCanFit >= cursorLine then
prevLineNumber
else
let val lineDifference = cursorLine - prevLineNumber
in prevLineNumber + lineDifference
end
end
end