diff options
-rw-r--r-- | edit.mu | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/edit.mu b/edit.mu index 381e47e1..40819a62 100644 --- a/edit.mu +++ b/edit.mu @@ -731,6 +731,14 @@ recipe handle-event [ move-to-end-of-line editor reply } + # delete + { + delete?:boolean <- equal *k, 65522/delete + break-unless delete? + curr:address:duplex-list <- get **before-cursor, next:offset + _ <- remove-duplex curr + reply + } ] # process click, return if it was on current editor @@ -1443,6 +1451,34 @@ ef] ] ] +scenario editor-handles-delete-key [ + assume-screen 10/width, 5/height + 1:address:array:character <- new [abc] + 2:address:editor-data <- new-editor 1:address:array:character, screen:address, 0/left, 10/right + assume-console [ + press 65522 # delete + ] + run [ + editor-event-loop screen:address, console:address, 2:address:editor-data + ] + screen-should-contain [ + . . + .bc . + . . + ] + assume-console [ + press 65522 # delete + ] + run [ + editor-event-loop screen:address, console:address, 2:address:editor-data + ] + screen-should-contain [ + . . + .c . + . . + ] +] + scenario editor-handles-backspace-key [ assume-screen 10/width, 5/height 1:address:array:character <- new [abc] |