From 736b26a73f2b1f31593d1b2fb7bd690280576ac8 Mon Sep 17 00:00:00 2001 From: "Kartik K. Agaram" Date: Tue, 22 Aug 2017 08:39:53 -0700 Subject: 3980 --- edit/003-shortcuts.mu | 84 +++++++++++++++++++++++++-------------------------- 1 file changed, 42 insertions(+), 42 deletions(-) (limited to 'edit/003-shortcuts.mu') diff --git a/edit/003-shortcuts.mu b/edit/003-shortcuts.mu index 6ffc9bcf..df40a6e4 100644 --- a/edit/003-shortcuts.mu +++ b/edit/003-shortcuts.mu @@ -52,12 +52,12 @@ after [ { tab?:bool <- equal c, 9/tab break-unless tab? - + # todo: decompose insert-at-cursor into editor update and screen update, # so that 'tab' doesn't render the current line multiple times insert-at-cursor editor, 32/space, screen go-render? <- insert-at-cursor editor, 32/space, screen - + return } ] @@ -96,9 +96,9 @@ after [ { delete-previous-character?:bool <- equal c, 8/backspace break-unless delete-previous-character? - + go-render?:bool, backspaced-cell:&:duplex-list:char <- delete-before-cursor editor, screen - + return } ] @@ -363,9 +363,9 @@ after [ { delete-next-character?:bool <- equal k, 65522/delete break-unless delete-next-character? - + go-render?:bool, deleted-cell:&:duplex-list:char <- delete-at-cursor editor, screen - + return } ] @@ -439,13 +439,13 @@ after [ next-cursor:&:duplex-list:char <- next before-cursor break-unless next-cursor # scan to next character - + before-cursor <- copy next-cursor *editor <- put *editor, before-cursor:offset, before-cursor go-render?:bool <- move-cursor-coordinates-right editor, screen-height screen <- move-cursor screen, cursor-row, cursor-column undo-coalesce-tag:num <- copy 2/right-arrow - + return } ] @@ -723,12 +723,12 @@ after [ # if not at start of text (before-cursor at ยง sentinel) prev:&:duplex-list:char <- prev before-cursor return-unless prev, 0/don't-render - + go-render? <- move-cursor-coordinates-left editor before-cursor <- copy prev *editor <- put *editor, before-cursor:offset, before-cursor undo-coalesce-tag:num <- copy 1/left-arrow - + return } ] @@ -989,10 +989,10 @@ after [ { move-to-previous-line?:bool <- equal k, 65517/up-arrow break-unless move-to-previous-line? - + go-render? <- move-to-previous-line editor undo-coalesce-tag:num <- copy 3/up-arrow - + return } ] @@ -1343,10 +1343,10 @@ after [ { move-to-next-line?:bool <- equal k, 65516/down-arrow break-unless move-to-next-line? - + go-render? <- move-to-next-line editor, screen-height undo-coalesce-tag:num <- copy 4/down-arrow - + return } ] @@ -1540,10 +1540,10 @@ after [ { move-to-start-of-line?:bool <- equal c, 1/ctrl-a break-unless move-to-start-of-line? - + move-to-start-of-screen-line editor undo-coalesce-tag:num <- copy 0/never - + return 0/don't-render } ] @@ -1552,10 +1552,10 @@ after [ { move-to-start-of-line?:bool <- equal k, 65521/home break-unless move-to-start-of-line? - + move-to-start-of-screen-line editor undo-coalesce-tag:num <- copy 0/never - + return 0/don't-render } ] @@ -1765,10 +1765,10 @@ after [ { move-to-end-of-line?:bool <- equal c, 5/ctrl-e break-unless move-to-end-of-line? - + move-to-end-of-line editor undo-coalesce-tag:num <- copy 0/never - + return 0/don't-render } ] @@ -1777,10 +1777,10 @@ after [ { move-to-end-of-line?:bool <- equal k, 65520/end break-unless move-to-end-of-line? - + move-to-end-of-line editor undo-coalesce-tag:num <- copy 0/never - + return 0/don't-render } ] @@ -1960,9 +1960,9 @@ after [ { delete-to-start-of-line?:bool <- equal c, 21/ctrl-u break-unless delete-to-start-of-line? - + deleted-cells:&:duplex-list:char <- delete-to-start-of-line editor - + go-render?:bool <- minimal-render-for-ctrl-u screen, editor, deleted-cells return } @@ -2537,9 +2537,9 @@ after [ { delete-to-end-of-line?:bool <- equal c, 11/ctrl-k break-unless delete-to-end-of-line? - + deleted-cells:&:duplex-list:char <- delete-to-end-of-line editor - + # checks if we can do a minimal render and if we can it will do a minimal render go-render?:bool <- minimal-render-for-ctrl-k screen, editor, deleted-cells return @@ -3567,10 +3567,10 @@ after [ page-down?:bool <- equal c, 6/ctrl-f break-unless page-down? old-top:&:duplex-list:char <- get *editor, top-of-screen:offset - + page-down editor undo-coalesce-tag:num <- copy 0/never - + top-of-screen:&:duplex-list:char <- get *editor, top-of-screen:offset movement?:bool <- not-equal top-of-screen, old-top return movement?/go-render @@ -3582,10 +3582,10 @@ after [ page-down?:bool <- equal k, 65518/page-down break-unless page-down? old-top:&:duplex-list:char <- get *editor, top-of-screen:offset - + page-down editor undo-coalesce-tag:num <- copy 0/never - + top-of-screen:&:duplex-list:char <- get *editor, top-of-screen:offset movement?:bool <- not-equal top-of-screen, old-top return movement?/go-render @@ -3791,10 +3791,10 @@ after [ page-up?:bool <- equal c, 2/ctrl-b break-unless page-up? old-top:&:duplex-list:char <- get *editor, top-of-screen:offset - + editor <- page-up editor, screen-height undo-coalesce-tag:num <- copy 0/never - + top-of-screen:&:duplex-list:char <- get *editor, top-of-screen:offset movement?:bool <- not-equal top-of-screen, old-top return movement?/go-render @@ -3806,10 +3806,10 @@ after [ page-up?:bool <- equal k, 65519/page-up break-unless page-up? old-top:&:duplex-list:char <- get *editor, top-of-screen:offset - + editor <- page-up editor, screen-height undo-coalesce-tag:num <- copy 0/never - + top-of-screen:&:duplex-list:char <- get *editor, top-of-screen:offset movement?:bool <- not-equal top-of-screen, old-top # don't bother re-rendering if nothing changed. todo: test this @@ -4138,10 +4138,10 @@ after [ { scroll-up?:bool <- equal c, 19/ctrl-s break-unless scroll-up? - + go-render?:bool, editor <- line-up editor, screen-height undo-coalesce-tag:num <- copy 5/line-up - + return go-render? } ] @@ -4169,10 +4169,10 @@ after [ { scroll-down?:bool <- equal c, 24/ctrl-x break-unless scroll-down? - + go-render?:bool, editor <- line-down editor, screen-height undo-coalesce-tag:num <- copy 6/line-down - + return go-render? } ] @@ -4197,7 +4197,7 @@ after [ { scroll-down?:bool <- equal c, 20/ctrl-t break-unless scroll-down? - + old-top:&:duplex-list:char <- get *editor, top-of-screen:offset cursor:&:duplex-list:char <- get *editor, before-cursor:offset cursor <- next cursor @@ -4206,7 +4206,7 @@ after [ *editor <- put *editor, cursor-row:offset, 1 go-render?:bool <- not-equal new-top, old-top undo-coalesce-tag:num <- copy 0/never - + return go-render? } ] @@ -4219,7 +4219,7 @@ after [ break-unless comment-toggle? cursor-column:num <- get *editor, cursor-column:offset data:&:duplex-list:char <- get *editor, data:offset - + before-line-start:&:duplex-list:char <- before-start-of-screen-line editor line-start:&:duplex-list:char <- next before-line-start commented-out?:bool <- match line-start, [#? ] # comment prefix @@ -4239,7 +4239,7 @@ after [ *editor <- put *editor, cursor-column:offset, cursor-column go-render? <- render-line-from-start screen, editor, 0 } - + return } ] -- cgit 1.4.1-2-gfad0