implement 'deleteInside' motions

This commit is contained in:
2025-08-07 19:12:01 +01:00
parent b6960f4c68
commit 1bdf8e457b
3 changed files with 81 additions and 5 deletions

View File

@@ -111,6 +111,20 @@ struct
AppWith.mode (app, mode, [])
end
fun parseDeleteInside (app, chr) =
case chr of
#"w" => NormalDelete.deleteInsideWord app
| #"W" => NormalDelete.deleteInsideWORD app
| #"(" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"[" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"{" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"<" => NormalDelete.deleteInsideChrOpen (app, chr)
| #")" => NormalDelete.deleteInsideChrClose (app, chr)
| #"]" => NormalDelete.deleteInsideChrClose (app, chr)
| #"}" => NormalDelete.deleteInsideChrClose (app, chr)
| #">" => NormalDelete.deleteInsideChrClose (app, chr)
| _ => Finish.clearMode app
fun parseDelete (strPos, str, count, app, newCmd) =
if strPos = String.size str - 1 then
(* have to check newCmd *)
@@ -212,9 +226,7 @@ struct
Finish.withSearchList (app, searchList))
| #"i" =>
(case newCmd of
CHAR_EVENT #"w" => NormalDelete.deleteInsideWord app
| CHAR_EVENT #"W" => NormalDelete.deleteInsideWORD app
| CHAR_EVENT _ => Finish.clearMode app
CHAR_EVENT chr => parseDeleteInside (app, chr)
| KEY_ESC => Finish.clearMode app
| RESIZE_EVENT (width, height) =>
Finish.resizeText (app, width, height)