From 418adc4502f35128c7671e4d89dd5612248e2ce6 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Wed, 9 Oct 2024 10:59:32 +0100 Subject: [PATCH] add cursorIdx to app type in fcore --- fcore/app-type.sml | 8 +++++++- fcore/app-update.sml | 3 +-- fcore/app-with.sml | 4 +++- shf | Bin 1109592 -> 1109592 bytes 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/fcore/app-type.sml b/fcore/app-type.sml index d50c444..d1ea4eb 100644 --- a/fcore/app-type.sml +++ b/fcore/app-type.sml @@ -1,12 +1,18 @@ structure AppType = struct type app_type = - {buffer: LineGap.t, windowWidth: int, windowHeight: int, startLine: int} + { buffer: LineGap.t + , windowWidth: int + , windowHeight: int + , startLine: int + , cursorIdx: int + } fun init (buffer, windowWidth, windowHeight) : app_type = { buffer = buffer , windowWidth = windowWidth , windowHeight = windowHeight , startLine = 0 + , cursorIdx = 0 } end diff --git a/fcore/app-update.sml b/fcore/app-update.sml index 48df52e..ebb46bf 100644 --- a/fcore/app-update.sml +++ b/fcore/app-update.sml @@ -8,10 +8,9 @@ struct fun resizeText (app: app_type, newWidth, newHeight) = let - val {buffer, windowWidth, windowHeight, startLine} = app + val {buffer, windowWidth, windowHeight, startLine, cursorIdx} = app val newBuffer = LineGap.goToLine (startLine, buffer) - val cursorIdx = 0 (* TEMP *) val textVec = TextBuilder.build (startLine, cursorIdx, newBuffer, newWidth, newHeight) diff --git a/fcore/app-with.sml b/fcore/app-with.sml index dbd4051..513124c 100644 --- a/fcore/app-with.sml +++ b/fcore/app-with.sml @@ -4,12 +4,14 @@ struct fun bufferAndSize (app: app_type, newBuffer, newWidth, newHeight) = let - val {buffer = _, windowWidth = _, windowHeight = _, startLine} = app + val {buffer = _, windowWidth = _, windowHeight = _, startLine, cursorIdx} = + app in { buffer = newBuffer , windowWidth = newWidth , windowHeight = newHeight , startLine = startLine + , cursorIdx = cursorIdx } end end diff --git a/shf b/shf index aa5e9305483527e7cb415751473345b162f375af..0a9cdffd6ac5c1ba2a8fc071ccf6d47cae8e4e4b 100755 GIT binary patch delta 9467 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 by{JxV_|XIRFQ~rrUsummm)w?`^6LKrF^*+6 delta 9487 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