From cae9f197871ce99b3c71b0f95463be8aed53b2a9 Mon Sep 17 00:00:00 2001 From: Humza Shahid Date: Thu, 14 Nov 2024 08:12:27 +0000 Subject: [PATCH] add search list to app type --- fcore/app-type.sml | 12 ++++++++---- fcore/app-with.sml | 28 +++++++++++++++++++++++++--- fcore/search-list.sml | 2 +- shf | Bin 1246232 -> 1246232 bytes shf.mlb | 5 +++-- 5 files changed, 37 insertions(+), 10 deletions(-) diff --git a/fcore/app-type.sml b/fcore/app-type.sml index 4f9acd2..b0f8fb4 100644 --- a/fcore/app-type.sml +++ b/fcore/app-type.sml @@ -1,11 +1,12 @@ signature APP_TYPE = sig - datatype mode = - NORMAL_MODE of string + datatype mode = NORMAL_MODE of string type app_type = { mode: mode , buffer: LineGap.t + , searchList: SearchList.t + , searchString: string , windowWidth: int , windowHeight: int (* line to start drawing from *) @@ -19,12 +20,13 @@ end structure AppType :> APP_TYPE = struct - datatype mode = - NORMAL_MODE of string + datatype mode = NORMAL_MODE of string type app_type = { mode: mode , buffer: LineGap.t + , searchList: SearchList.t + , searchString: string , windowWidth: int , windowHeight: int (* line to start drawing from *) @@ -36,6 +38,8 @@ struct fun init (buffer, windowWidth, windowHeight) : app_type = { mode = NORMAL_MODE "" , buffer = buffer + , searchList = SearchList.empty + , searchString = "" , windowWidth = windowWidth , windowHeight = windowHeight , startLine = 0 diff --git a/fcore/app-with.sml b/fcore/app-with.sml index cec2517..68163da 100644 --- a/fcore/app-with.sml +++ b/fcore/app-with.sml @@ -7,6 +7,8 @@ struct val { startLine = _ , buffer = _ + , searchList + , searchString , mode , windowWidth , windowHeight @@ -15,6 +17,8 @@ struct in { startLine = startLine , buffer = newBuffer + , searchList = searchList + , searchString = searchString , mode = mode , windowWidth = windowWidth , windowHeight = windowHeight @@ -29,6 +33,8 @@ struct , buffer = _ , windowWidth = _ , windowHeight = _ + , searchList + , searchString , startLine , cursorIdx } = app @@ -37,6 +43,8 @@ struct , buffer = newBuffer , windowWidth = newWidth , windowHeight = newHeight + , searchList = searchList + , searchString = searchString , startLine = startLine , cursorIdx = cursorIdx } @@ -49,15 +57,19 @@ struct { mode = _ , buffer = _ , cursorIdx = _ + , startLine = _ + , searchList + , searchString , windowWidth , windowHeight - , startLine = _ } = app in { mode = newMode , buffer = newBuffer , cursorIdx = newCursorIdx , startLine = newStartLine + , searchList = searchList + , searchString = searchString , windowWidth = windowWidth , windowHeight = windowHeight } @@ -65,11 +77,21 @@ struct fun mode (app: app_type, newMode) = let - val {mode = _, buffer, cursorIdx, windowWidth, windowHeight, startLine} = - app + val + { mode = _ + , buffer + , searchList + , searchString + , cursorIdx + , windowWidth + , windowHeight + , startLine + } = app in { mode = newMode , buffer = buffer + , searchList = searchList + , searchString = searchString , cursorIdx = cursorIdx , windowWidth = windowWidth , windowHeight = windowHeight diff --git a/fcore/search-list.sml b/fcore/search-list.sml index c74a1cf..cf38b57 100644 --- a/fcore/search-list.sml +++ b/fcore/search-list.sml @@ -7,7 +7,7 @@ sig val mapFromNum: int * int * t -> t end -structure SearchList = +structure SearchList :> SEARCH_LIST = struct type t = {left: int vector list, right: int vector list} diff --git a/shf b/shf index af61303c2d4ef9184f539b67f9585982e48e4145..7ea04c89294f6f949fc8641ed63d94fcaa8b28a3 100755 GIT binary patch delta 28338 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