implement functionality for left and right arrow keys to move cursor left/right when entering searchString in NORMAL_SEARCH_MODE

This commit is contained in:
2025-09-01 11:33:01 +01:00
parent a10e56935e
commit 3e69c41d8f
2 changed files with 33 additions and 0 deletions

View File

@@ -102,6 +102,28 @@ struct
(app, searchString, tempSearchList, searchCursorIdx, buffer)
end
fun moveLeft (app, searchString, tempSearchList, searchCursorIdx) =
if searchCursorIdx = 0 then
app
else
let
val searchCursorIdx = searchCursorIdx - 1
in
NormalSearchFinish.onSearchChanged
(app, searchString, tempSearchList, searchCursorIdx, #buffer app)
end
fun moveRight (app, searchString, tempSearchList, searchCursorIdx) =
if searchCursorIdx = String.size searchString then
app
else
let
val searchCursorIdx = searchCursorIdx + 1
in
NormalSearchFinish.onSearchChanged
(app, searchString, tempSearchList, searchCursorIdx, #buffer app)
end
fun update (app, {searchString, tempSearchList, searchCursorIdx}, msg, time) =
case msg of
CHAR_EVENT chr => addChr (app, searchString, searchCursorIdx, chr)
@@ -111,4 +133,10 @@ struct
| KEY_ENTER => saveSearch (app, searchString, tempSearchList)
| RESIZE_EVENT (width, height) => app
| WITH_SEARCH_LIST searchList => app
| ARROW_LEFT =>
moveLeft (app, searchString, tempSearchList, searchCursorIdx)
| ARROW_RIGHT =>
moveRight (app, searchString, tempSearchList, searchCursorIdx)
| ARROW_UP => app
| ARROW_DOWN => app
end