diff options
author | Kartik K. Agaram <vc@akkartik.com> | 2017-09-25 21:20:49 -0700 |
---|---|---|
committer | Kartik K. Agaram <vc@akkartik.com> | 2017-09-25 21:20:49 -0700 |
commit | c0d61295ed3575cfea7d2a22d81bae93c6009308 (patch) | |
tree | 42fc40d4ce6da540c9fa75d5e74ec75e5c313a7b /html/edit/012-editor-undo.mu.html | |
parent | 409237204368205a06e2b82fcab26b0a290d7412 (diff) | |
download | mu-c0d61295ed3575cfea7d2a22d81bae93c6009308.tar.gz |
4008
Allow list `push` operation to save result in a new list rather than mutate the existing list.
Diffstat (limited to 'html/edit/012-editor-undo.mu.html')
-rw-r--r-- | html/edit/012-editor-undo.mu.html | 38 |
1 files changed, 19 insertions, 19 deletions
diff --git a/html/edit/012-editor-undo.mu.html b/html/edit/012-editor-undo.mu.html index 7774741c..dcf95a50 100644 --- a/html/edit/012-editor-undo.mu.html +++ b/html/edit/012-editor-undo.mu.html @@ -133,7 +133,7 @@ if ('onhashchange' in window) { <span id="L70" class="LineNr"> 70 </span> <span class="Conceal">¦</span> undo:&:<a href='../064list.mu.html#L6'>list</a>:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> get *editor, <span class="Constant">undo:offset</span> <span id="L71" class="LineNr"> 71 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> undo <span id="L72" class="LineNr"> 72 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> first undo -<span id="L73" class="LineNr"> 73 </span> <span class="Conceal">¦</span> undo <span class="Special"><-</span> <a href='../064list.mu.html#L25'>rest</a> undo +<span id="L73" class="LineNr"> 73 </span> <span class="Conceal">¦</span> undo <span class="Special"><-</span> <a href='../064list.mu.html#L24'>rest</a> undo <span id="L74" class="LineNr"> 74 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">undo:offset</span>, undo <span id="L75" class="LineNr"> 75 </span> <span class="Conceal">¦</span> redo:&:<a href='../064list.mu.html#L6'>list</a>:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> get *editor, <span class="Constant">redo:offset</span> <span id="L76" class="LineNr"> 76 </span> <span class="Conceal">¦</span> redo <span class="Special"><-</span> push op, redo @@ -151,7 +151,7 @@ if ('onhashchange' in window) { <span id="L88" class="LineNr"> 88 </span> <span class="Conceal">¦</span> redo:&:<a href='../064list.mu.html#L6'>list</a>:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> get *editor, <span class="Constant">redo:offset</span> <span id="L89" class="LineNr"> 89 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> redo <span id="L90" class="LineNr"> 90 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> first redo -<span id="L91" class="LineNr"> 91 </span> <span class="Conceal">¦</span> redo <span class="Special"><-</span> <a href='../064list.mu.html#L25'>rest</a> redo +<span id="L91" class="LineNr"> 91 </span> <span class="Conceal">¦</span> redo <span class="Special"><-</span> <a href='../064list.mu.html#L24'>rest</a> redo <span id="L92" class="LineNr"> 92 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">redo:offset</span>, redo <span id="L93" class="LineNr"> 93 </span> <span class="Conceal">¦</span> undo:&:<a href='../064list.mu.html#L6'>list</a>:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> get *editor, <span class="Constant">undo:offset</span> <span id="L94" class="LineNr"> 94 </span> <span class="Conceal">¦</span> undo <span class="Special"><-</span> push op, undo @@ -221,7 +221,7 @@ if ('onhashchange' in window) { <span id="L158" class="LineNr"> 158 </span> <span class="Conceal">¦</span> previous-coalesce-tag:num <span class="Special"><-</span> get typing, <span class="Constant">tag:offset</span> <span id="L159" class="LineNr"> 159 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> previous-coalesce-tag <span id="L160" class="LineNr"> 160 </span> <span class="Conceal">¦</span> before-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">before-cursor:offset</span> -<span id="L161" class="LineNr"> 161 </span> <span class="Conceal">¦</span> insert-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L161" class="LineNr"> 161 </span> <span class="Conceal">¦</span> insert-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L162" class="LineNr"> 162 </span> <span class="Conceal">¦</span> typing <span class="Special"><-</span> put typing, <span class="Constant">insert-until:offset</span>, insert-until <span id="L163" class="LineNr"> 163 </span> <span class="Conceal">¦</span> typing <span class="Special"><-</span> put typing, <span class="Constant">after-row:offset</span>, cursor-row <span id="L164" class="LineNr"> 164 </span> <span class="Conceal">¦</span> typing <span class="Special"><-</span> put typing, <span class="Constant">after-column:offset</span>, cursor-column @@ -230,8 +230,8 @@ if ('onhashchange' in window) { <span id="L167" class="LineNr"> 167 </span> <span class="Conceal">¦</span> <span class="muControl">break</span> <span class="Constant">+done-adding-insert-operation</span> <span id="L168" class="LineNr"> 168 </span> <span class="Delimiter">}</span> <span id="L169" class="LineNr"> 169 </span> <span class="Comment"># if not, create a new operation</span> -<span id="L170" class="LineNr"> 170 </span> insert-from:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> cursor-before -<span id="L171" class="LineNr"> 171 </span> insert-to:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> insert-from +<span id="L170" class="LineNr"> 170 </span> insert-from:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> cursor-before +<span id="L171" class="LineNr"> 171 </span> insert-to:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> insert-from <span id="L172" class="LineNr"> 172 </span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> <span id="L173" class="LineNr"> 173 </span> *op <span class="Special"><-</span> merge <span class="Constant">0/insert-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, insert-from, insert-to, <span class="Constant">1/coalesce</span> <span id="L174" class="LineNr"> 174 </span> editor <span class="Special"><-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op @@ -250,9 +250,9 @@ if ('onhashchange' in window) { <span id="L187" class="LineNr"> 187 </span> cursor-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L188" class="LineNr"> 188 </span> cursor-column:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L189" class="LineNr"> 189 </span> <span class="Comment"># never coalesce</span> -<span id="L190" class="LineNr"> 190 </span> insert-from:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> cursor-before +<span id="L190" class="LineNr"> 190 </span> insert-from:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> cursor-before <span id="L191" class="LineNr"> 191 </span> before-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">before-cursor:offset</span> -<span id="L192" class="LineNr"> 192 </span> insert-to:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L192" class="LineNr"> 192 </span> insert-to:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L193" class="LineNr"> 193 </span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> <span id="L194" class="LineNr"> 194 </span> *op <span class="Special"><-</span> merge <span class="Constant">0/insert-operation</span>, cursor-row-before, cursor-column-before, top-before, cursor-row/after, cursor-column/after, top-after, insert-from, insert-to, <span class="Constant">0/never-coalesce</span> <span id="L195" class="LineNr"> 195 </span> editor <span class="Special"><-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op @@ -280,9 +280,9 @@ if ('onhashchange' in window) { <span id="L217" class="LineNr"> 217 </span> <span class="Conceal">¦</span> start:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get typing, <span class="Constant">insert-from:offset</span> <span id="L218" class="LineNr"> 218 </span> <span class="Conceal">¦</span> end:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get typing, <span class="Constant">insert-until:offset</span> <span id="L219" class="LineNr"> 219 </span> <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span> -<span id="L220" class="LineNr"> 220 </span> <span class="Conceal">¦</span> before-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> start +<span id="L220" class="LineNr"> 220 </span> <span class="Conceal">¦</span> before-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> start <span id="L221" class="LineNr"> 221 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor -<span id="L222" class="LineNr"> 222 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> before-cursor, end +<span id="L222" class="LineNr"> 222 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> before-cursor, end <span id="L223" class="LineNr"> 223 </span> <span class="Conceal">¦</span> cursor-row <span class="Special"><-</span> get typing, <span class="Constant">before-row:offset</span> <span id="L224" class="LineNr"> 224 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row <span id="L225" class="LineNr"> 225 </span> <span class="Conceal">¦</span> cursor-column <span class="Special"><-</span> get typing, <span class="Constant">before-column:offset</span> @@ -480,7 +480,7 @@ if ('onhashchange' in window) { <span id="L417" class="LineNr"> 417 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> get *editor, <span class="Constant">before-cursor:offset</span> <span id="L418" class="LineNr"> 418 </span> <span class="Conceal">¦</span> insert-from:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get typing, <span class="Constant">insert-from:offset</span> <span class="Comment"># ignore insert-to because it's already been spliced away</span> <span id="L419" class="LineNr"> 419 </span> <span class="Conceal">¦</span> <span class="Comment"># assert insert-to matches next(before-cursor)</span> -<span id="L420" class="LineNr"> 420 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> before-cursor, insert-from +<span id="L420" class="LineNr"> 420 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> before-cursor, insert-from <span id="L421" class="LineNr"> 421 </span> <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span> <span id="L422" class="LineNr"> 422 </span> <span class="Conceal">¦</span> cursor-row <span class="Special"><-</span> get typing, <span class="Constant">after-row:offset</span> <span id="L423" class="LineNr"> 423 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row @@ -1701,7 +1701,7 @@ if ('onhashchange' in window) { <span id="L1638" class="LineNr">1638 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> coalesce? <span id="L1639" class="LineNr">1639 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special"><-</span> put deletion, <span class="Constant">delete-from:offset</span>, before-cursor <span id="L1640" class="LineNr">1640 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> backspaced-so-far:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">deleted-text:offset</span> -<span id="L1641" class="LineNr">1641 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> backspaced-cell, backspaced-so-far +<span id="L1641" class="LineNr">1641 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> backspaced-cell, backspaced-so-far <span id="L1642" class="LineNr">1642 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special"><-</span> put deletion, <span class="Constant">deleted-text:offset</span>, backspaced-cell <span id="L1643" class="LineNr">1643 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special"><-</span> put deletion, <span class="Constant">after-row:offset</span>, cursor-row <span id="L1644" class="LineNr">1644 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special"><-</span> put deletion, <span class="Constant">after-column:offset</span>, cursor-column @@ -1711,7 +1711,7 @@ if ('onhashchange' in window) { <span id="L1648" class="LineNr">1648 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L1649" class="LineNr">1649 </span> <span class="Conceal">¦</span> <span class="Comment"># if not, create a new operation</span> <span id="L1650" class="LineNr">1650 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> -<span id="L1651" class="LineNr">1651 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L1651" class="LineNr">1651 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L1652" class="LineNr">1652 </span> <span class="Conceal">¦</span> *op <span class="Special"><-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, backspaced-cell/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">1/coalesce-backspace</span> <span id="L1653" class="LineNr">1653 </span> <span class="Conceal">¦</span> editor <span class="Special"><-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op <span id="L1654" class="LineNr">1654 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> +done-adding-backspace-operation</span> @@ -1725,8 +1725,8 @@ if ('onhashchange' in window) { <span id="L1662" class="LineNr">1662 </span> <span class="Conceal">¦</span> anchor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">delete-from:offset</span> <span id="L1663" class="LineNr">1663 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> anchor <span id="L1664" class="LineNr">1664 </span> <span class="Conceal">¦</span> deleted:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">deleted-text:offset</span> -<span id="L1665" class="LineNr">1665 </span> <span class="Conceal">¦</span> old-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L576'>last</a> deleted -<span id="L1666" class="LineNr">1666 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L529'>splice</a> anchor, deleted +<span id="L1665" class="LineNr">1665 </span> <span class="Conceal">¦</span> old-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L572'>last</a> deleted +<span id="L1666" class="LineNr">1666 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L525'>splice</a> anchor, deleted <span id="L1667" class="LineNr">1667 </span> <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span> <span id="L1668" class="LineNr">1668 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy old-cursor <span id="L1669" class="LineNr">1669 </span> <span class="Conceal">¦</span> cursor-row <span class="Special"><-</span> get deletion, <span class="Constant">before-row:offset</span> @@ -1745,7 +1745,7 @@ if ('onhashchange' in window) { <span id="L1682" class="LineNr">1682 </span> <span class="Conceal">¦</span> start:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">delete-from:offset</span> <span id="L1683" class="LineNr">1683 </span> <span class="Conceal">¦</span> end:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">delete-until:offset</span> <span id="L1684" class="LineNr">1684 </span> <span class="Conceal">¦</span> data:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">data:offset</span> -<span id="L1685" class="LineNr">1685 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> start, end +<span id="L1685" class="LineNr">1685 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> start, end <span id="L1686" class="LineNr">1686 </span> <span class="Conceal">¦</span> <span class="Comment"># assert cursor-row/cursor-column/top-of-screen match after-row/after-column/after-top-of-screen</span> <span id="L1687" class="LineNr">1687 </span> <span class="Conceal">¦</span> cursor-row <span class="Special"><-</span> get deletion, <span class="Constant">after-row:offset</span> <span id="L1688" class="LineNr">1688 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">cursor-row:offset</span>, cursor-row @@ -1925,7 +1925,7 @@ if ('onhashchange' in window) { <span id="L1862" class="LineNr">1862 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> previous-coalesce-tag:num <span class="Special"><-</span> get deletion, <span class="Constant">tag:offset</span> <span id="L1863" class="LineNr">1863 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> coalesce?:bool <span class="Special"><-</span> equal previous-coalesce-tag, <span class="Constant">2/coalesce-delete</span> <span id="L1864" class="LineNr">1864 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> coalesce? -<span id="L1865" class="LineNr">1865 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> delete-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L1865" class="LineNr">1865 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> delete-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L1866" class="LineNr">1866 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deletion <span class="Special"><-</span> put deletion, <span class="Constant">delete-until:offset</span>, delete-until <span id="L1867" class="LineNr">1867 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deleted-so-far:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get deletion, <span class="Constant">deleted-text:offset</span> <span id="L1868" class="LineNr">1868 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> deleted-so-far <span class="Special"><-</span> append deleted-so-far, deleted-cell @@ -1938,7 +1938,7 @@ if ('onhashchange' in window) { <span id="L1875" class="LineNr">1875 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L1876" class="LineNr">1876 </span> <span class="Conceal">¦</span> <span class="Comment"># if not, create a new operation</span> <span id="L1877" class="LineNr">1877 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> -<span id="L1878" class="LineNr">1878 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L1878" class="LineNr">1878 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L1879" class="LineNr">1879 </span> <span class="Conceal">¦</span> *op <span class="Special"><-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cell/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">2/coalesce-delete</span> <span id="L1880" class="LineNr">1880 </span> <span class="Conceal">¦</span> editor <span class="Special"><-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op <span id="L1881" class="LineNr">1881 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> +done-adding-delete-operation</span> @@ -2040,7 +2040,7 @@ if ('onhashchange' in window) { <span id="L1977" class="LineNr">1977 </span> <span class="Conceal">¦</span> top-after:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">top-of-screen:offset</span> <span id="L1978" class="LineNr">1978 </span> <span class="Conceal">¦</span> cursor-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L1979" class="LineNr">1979 </span> <span class="Conceal">¦</span> cursor-column:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-column:offset</span> -<span id="L1980" class="LineNr">1980 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L1980" class="LineNr">1980 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L1981" class="LineNr">1981 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> <span id="L1982" class="LineNr">1982 </span> <span class="Conceal">¦</span> *op <span class="Special"><-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cells/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">0/never-coalesce</span> <span id="L1983" class="LineNr">1983 </span> <span class="Conceal">¦</span> editor <span class="Special"><-</span> <a href='012-editor-undo.mu.html#L202'>add-operation</a> editor, op @@ -2143,7 +2143,7 @@ if ('onhashchange' in window) { <span id="L2080" class="LineNr">2080 </span> <span class="Conceal">¦</span> top-after:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">top-of-screen:offset</span> <span id="L2081" class="LineNr">2081 </span> <span class="Conceal">¦</span> op:&:<a href='012-editor-undo.mu.html#L5'>operation</a> <span class="Special"><-</span> new <span class="Constant"><a href='012-editor-undo.mu.html#L5'>operation</a>:type</span> <span id="L2082" class="LineNr">2082 </span> <span class="Conceal">¦</span> before-cursor:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> get *editor, <span class="Constant">before-cursor:offset</span> -<span id="L2083" class="LineNr">2083 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> before-cursor +<span id="L2083" class="LineNr">2083 </span> <span class="Conceal">¦</span> deleted-until:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> before-cursor <span id="L2084" class="LineNr">2084 </span> <span class="Conceal">¦</span> cursor-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L2085" class="LineNr">2085 </span> <span class="Conceal">¦</span> cursor-column:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-column:offset</span> <span id="L2086" class="LineNr">2086 </span> <span class="Conceal">¦</span> *op <span class="Special"><-</span> merge <span class="Constant">2/delete-operation</span>, save-row/before, save-column/before, top-before, cursor-row/after, cursor-column/after, top-after, deleted-cells/deleted, before-cursor/delete-from, deleted-until, <span class="Constant">0/never-coalesce</span> |