Files
sml-projects/fcore/app-with.sml

169 lines
3.5 KiB
Standard ML
Raw Normal View History

2024-10-08 08:53:43 +01:00
structure AppWith =
struct
open AppType
fun bufferAndSize
2025-08-20 12:51:31 +01:00
( app: app_type
, newBuffer
, newWidth
, newHeight
, newSearchList
, newMsgs
, newBufferModifyTime
) =
2024-10-08 08:53:43 +01:00
let
val
{ mode
, buffer = _
, bufferModifyTime = _
, windowWidth = _
, windowHeight = _
, searchList = _
, msgs = _
2024-11-14 08:12:27 +00:00
, searchString
, startLine
, cursorIdx
} = app
2024-10-08 08:53:43 +01:00
in
{ mode = mode
, buffer = newBuffer
, bufferModifyTime = newBufferModifyTime
2024-10-08 08:53:43 +01:00
, windowWidth = newWidth
, windowHeight = newHeight
, searchList = newSearchList
, msgs = newMsgs
2024-11-14 08:12:27 +00:00
, searchString = searchString
2024-10-08 08:53:43 +01:00
, startLine = startLine
2024-10-09 10:59:32 +01:00
, cursorIdx = cursorIdx
2024-10-08 08:53:43 +01:00
}
end
fun bufferAndCursorIdx
( app: app_type
, newBuffer
, newCursorIdx
, newMode
, newStartLine
, newSearchList
, newMsgs
, newBufferModifyTime
) =
let
val
{ mode = _
, buffer = _
, bufferModifyTime = _
, cursorIdx = _
, startLine = _
, searchList = _
, msgs = _
, searchString
, windowWidth
, windowHeight
} = app
in
{ mode = newMode
, buffer = newBuffer
, bufferModifyTime = newBufferModifyTime
, cursorIdx = newCursorIdx
, startLine = newStartLine
, searchList = newSearchList
, msgs = newMsgs
, searchString = searchString
, windowWidth = windowWidth
, windowHeight = windowHeight
}
end
fun mode (app: app_type, newMode, newMsgs) =
2024-10-26 06:01:48 +01:00
let
2024-11-14 08:12:27 +00:00
val
{ mode = _
, msgs = _
2024-11-14 08:12:27 +00:00
, buffer
, bufferModifyTime
2024-11-14 08:12:27 +00:00
, searchList
, searchString
, cursorIdx
, windowWidth
, windowHeight
, startLine
} = app
2024-10-26 06:01:48 +01:00
in
{ mode = newMode
, msgs = newMsgs
2024-10-26 06:01:48 +01:00
, buffer = buffer
, bufferModifyTime = bufferModifyTime
2024-11-14 08:12:27 +00:00
, searchList = searchList
, searchString = searchString
2024-10-26 06:01:48 +01:00
, cursorIdx = cursorIdx
, windowWidth = windowWidth
, windowHeight = windowHeight
, startLine = startLine
}
end
2025-08-20 12:51:31 +01:00
fun searchList
( app: app_type
, newSearchList
, newBuffer
, newSearchString
, newBufferModifyTime
) =
let
val
{ searchList = _
, buffer = _
, bufferModifyTime
, searchString = _
, msgs
, mode
, cursorIdx
, windowWidth
, windowHeight
, startLine
} = app
in
{ searchList = newSearchList
, buffer = newBuffer
, bufferModifyTime = newBufferModifyTime
, searchString = newSearchString
, msgs = msgs
, mode = mode
, cursorIdx = cursorIdx
, windowWidth = windowWidth
, windowHeight = windowHeight
, startLine = startLine
}
end
2025-08-20 13:50:57 +01:00
(* this function exists only for testing *)
fun idx (app, newIdx) =
let
val
{ startLine
, buffer
, bufferModifyTime
, searchList
, searchString
, mode
, windowWidth
, windowHeight
, msgs
, cursorIdx = _
} = app
in
{ startLine = startLine
, buffer = buffer
, bufferModifyTime = bufferModifyTime
, searchList = searchList
, searchString = searchString
, mode = mode
, windowWidth = windowWidth
, windowHeight = windowHeight
, msgs = msgs
, cursorIdx = newIdx
}
end
2024-10-08 08:53:43 +01:00
end