done implementing 'deleteInside' and 'deleteAroundd' commands

This commit is contained in:
2025-08-07 23:33:40 +01:00
parent 5236579cd5
commit f848d4f301
2 changed files with 51 additions and 0 deletions

View File

@@ -125,6 +125,18 @@ struct
| #">" => NormalDelete.deleteInsideChrClose (app, chr)
| _ => Finish.clearMode app
fun parseDeleteAround (app, chr) =
case chr of
#"(" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"[" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"{" => NormalDelete.deleteInsideChrOpen (app, chr)
| #"<" => NormalDelete.deleteInsideChrOpen (app, chr)
| #")" => NormalDelete.deleteAroundChrClose (app, chr)
| #"]" => NormalDelete.deleteAroundChrClose (app, chr)
| #"}" => NormalDelete.deleteAroundChrClose (app, chr)
| #">" => NormalDelete.deleteAroundChrClose (app, chr)
| _ => Finish.clearMode app
fun parseDelete (strPos, str, count, app, newCmd) =
if strPos = String.size str - 1 then
(* have to check newCmd *)
@@ -161,6 +173,7 @@ struct
| #"F" => appendChr (app, chr, str)
| #"g" => appendChr (app, chr, str)
| #"i" => appendChr (app, chr, str)
| #"a" => appendChr (app, chr, str)
(* invalid command: reset mode *)
| _ => Finish.clearMode app)
| KEY_ESC => Finish.clearMode app
@@ -232,6 +245,14 @@ struct
Finish.resizeText (app, width, height)
| WITH_SEARCH_LIST searchList =>
Finish.withSearchList (app, searchList))
| #"a" =>
(case newCmd of
CHAR_EVENT chr => parseDeleteAround (app, chr)
| KEY_ESC => Finish.clearMode app
| RESIZE_EVENT (width, height) =>
Finish.resizeText (app, width, height)
| WITH_SEARCH_LIST searchList =>
Finish.withSearchList (app, searchList))
| _ => Finish.clearMode app
(* useful reference as list of non-terminal commands *)