diff options
Diffstat (limited to 'html/edit/003-shortcuts.mu.html')
-rw-r--r-- | html/edit/003-shortcuts.mu.html | 128 |
1 files changed, 64 insertions, 64 deletions
diff --git a/html/edit/003-shortcuts.mu.html b/html/edit/003-shortcuts.mu.html index 1cb4f6a3..4d24c08d 100644 --- a/html/edit/003-shortcuts.mu.html +++ b/html/edit/003-shortcuts.mu.html @@ -174,14 +174,14 @@ if ('onhashchange' in window) { <span id="L112" class="LineNr"> 112 </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="L113" class="LineNr"> 113 </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="L114" class="LineNr"> 114 </span> <span class="Comment"># if at start of text (before-cursor at § sentinel), return</span> -<span id="L115" class="LineNr"> 115 </span> <a href='../065duplex_list.mu.html#L36'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> before-cursor -<span id="L116" class="LineNr"> 116 </span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L36'>prev</a>, <span class="Constant">0/no-more-render</span>, <span class="Constant">0/nothing-deleted</span> +<span id="L115" class="LineNr"> 115 </span> <a href='../065duplex_list.mu.html#L32'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> before-cursor +<span id="L116" class="LineNr"> 116 </span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L32'>prev</a>, <span class="Constant">0/no-more-render</span>, <span class="Constant">0/nothing-deleted</span> <span id="L117" class="LineNr"> 117 </span> trace<span class="Constant"> 10</span>, <span class="Constant">[app]</span>, <span class="Constant">[delete-before-cursor]</span> <span id="L118" class="LineNr"> 118 </span> original-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L119" class="LineNr"> 119 </span> scroll?:bool <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L156'>move-cursor-coordinates-left</a> editor <span id="L120" class="LineNr"> 120 </span> backspaced-cell:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> copy before-cursor <span id="L121" class="LineNr"> 121 </span> data <span class="Special"><-</span> remove before-cursor, data <span class="Comment"># will also neatly trim next/prev pointers in backspaced-cell/before-cursor</span> -<span id="L122" class="LineNr"> 122 </span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L36'>prev</a> +<span id="L122" class="LineNr"> 122 </span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L32'>prev</a> <span id="L123" class="LineNr"> 123 </span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L124" class="LineNr"> 124 </span> <span class="muControl">return-if</span> scroll?, <span class="Constant">1/go-render</span> <span id="L125" class="LineNr"> 125 </span> <a href='../081print.mu.html#L768'>screen-width</a>:num <span class="Special"><-</span> <a href='../081print.mu.html#L768'>screen-width</a> <a href='../081print.mu.html#L16'>screen</a> @@ -192,7 +192,7 @@ if ('onhashchange' in window) { <span id="L130" class="LineNr"> 130 </span> <span class="muControl">return-unless</span> same-row?, <span class="Constant">1/go-render</span> <span id="L131" class="LineNr"> 131 </span> left:num <span class="Special"><-</span> get *editor, <span class="Constant">left:offset</span> <span id="L132" class="LineNr"> 132 </span> right:num <span class="Special"><-</span> get *editor, <span class="Constant">right:offset</span> -<span id="L133" class="LineNr"> 133 </span> curr:&:<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="L133" class="LineNr"> 133 </span> curr:&:<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="L134" class="LineNr"> 134 </span> <a href='../081print.mu.html#L16'>screen</a> <span class="Special"><-</span> move-cursor <a href='../081print.mu.html#L16'>screen</a>, cursor-row, cursor-column <span id="L135" class="LineNr"> 135 </span> curr-column:num <span class="Special"><-</span> copy cursor-column <span id="L136" class="LineNr"> 136 </span> <span class="Delimiter">{</span> @@ -206,7 +206,7 @@ if ('onhashchange' in window) { <span id="L144" class="LineNr"> 144 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-newline? <span id="L145" class="LineNr"> 145 </span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L16'>screen</a> <span class="Special"><-</span> print <a href='../081print.mu.html#L16'>screen</a>, currc <span id="L146" class="LineNr"> 146 </span> <span class="Conceal">¦</span> curr-column <span class="Special"><-</span> add curr-column,<span class="Constant"> 1</span> -<span id="L147" class="LineNr"> 147 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L147" class="LineNr"> 147 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L148" class="LineNr"> 148 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L149" class="LineNr"> 149 </span> <span class="Delimiter">}</span> <span id="L150" class="LineNr"> 150 </span> <span class="Comment"># we're guaranteed not to be at the right margin</span> @@ -286,7 +286,7 @@ if ('onhashchange' in window) { <span id="L224" class="LineNr"> 224 </span> at-start?:bool <span class="Special"><-</span> equal curr, start <span id="L225" class="LineNr"> 225 </span> <span class="muControl">return-if</span> at-start? <span id="L226" class="LineNr"> 226 </span> <span class="Delimiter">{</span> -<span id="L227" class="LineNr"> 227 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> curr +<span id="L227" class="LineNr"> 227 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> curr <span id="L228" class="LineNr"> 228 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> curr <span id="L229" class="LineNr"> 229 </span> <span class="Conceal">¦</span> at-start?:bool <span class="Special"><-</span> equal curr, start <span id="L230" class="LineNr"> 230 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-start? @@ -437,14 +437,14 @@ if ('onhashchange' in window) { <span id="L375" class="LineNr"> 375 </span> <span class="Constant">load-ingredients</span> <span id="L376" class="LineNr"> 376 </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="L377" class="LineNr"> 377 </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="L378" class="LineNr"> 378 </span> deleted-cell:&:<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="L378" class="LineNr"> 378 </span> deleted-cell:&:<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="L379" class="LineNr"> 379 </span> <span class="muControl">return-unless</span> deleted-cell, <span class="Constant">0/don't-render</span> <span id="L380" class="LineNr"> 380 </span> currc:char <span class="Special"><-</span> get *deleted-cell, <span class="Constant">value:offset</span> <span id="L381" class="LineNr"> 381 </span> data <span class="Special"><-</span> remove deleted-cell, data <span id="L382" class="LineNr"> 382 </span> deleted-newline?:bool <span class="Special"><-</span> equal currc, <span class="Constant">10/newline</span> <span id="L383" class="LineNr"> 383 </span> <span class="muControl">return-if</span> deleted-newline?, <span class="Constant">1/go-render</span> <span id="L384" class="LineNr"> 384 </span> <span class="Comment"># wasn't a newline? render rest of line</span> -<span id="L385" class="LineNr"> 385 </span> curr:&:<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 class="Comment"># refresh after remove above</span> +<span id="L385" class="LineNr"> 385 </span> curr:&:<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 class="Comment"># refresh after remove above</span> <span id="L386" class="LineNr"> 386 </span> cursor-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> <span id="L387" class="LineNr"> 387 </span> cursor-column:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-column:offset</span> <span id="L388" class="LineNr"> 388 </span> <a href='../081print.mu.html#L16'>screen</a> <span class="Special"><-</span> move-cursor <a href='../081print.mu.html#L16'>screen</a>, cursor-row, cursor-column @@ -460,7 +460,7 @@ if ('onhashchange' in window) { <span id="L398" class="LineNr"> 398 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-newline? <span id="L399" class="LineNr"> 399 </span> <span class="Conceal">¦</span> <a href='../081print.mu.html#L16'>screen</a> <span class="Special"><-</span> print <a href='../081print.mu.html#L16'>screen</a>, currc <span id="L400" class="LineNr"> 400 </span> <span class="Conceal">¦</span> curr-column <span class="Special"><-</span> add curr-column,<span class="Constant"> 1</span> -<span id="L401" class="LineNr"> 401 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L401" class="LineNr"> 401 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L402" class="LineNr"> 402 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L403" class="LineNr"> 403 </span> <span class="Delimiter">}</span> <span id="L404" class="LineNr"> 404 </span> <span class="Comment"># we're guaranteed not to be at the right margin</span> @@ -498,7 +498,7 @@ if ('onhashchange' in window) { <span id="L436" class="LineNr"> 436 </span> <span class="Conceal">¦</span> move-to-next-character?:bool <span class="Special"><-</span> equal k, <span class="Constant">65514/right-arrow</span> <span id="L437" class="LineNr"> 437 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> move-to-next-character? <span id="L438" class="LineNr"> 438 </span> <span class="Conceal">¦</span> <span class="Comment"># if not at end of text</span> -<span id="L439" class="LineNr"> 439 </span> <span class="Conceal">¦</span> next-cursor:&:<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="L439" class="LineNr"> 439 </span> <span class="Conceal">¦</span> next-cursor:&:<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="L440" class="LineNr"> 440 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> next-cursor <span id="L441" class="LineNr"> 441 </span> <span class="Conceal">¦</span> <span class="Comment"># scan to next character</span> <span id="L442" class="LineNr"> 442 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <begin-move-cursor></span> @@ -543,8 +543,8 @@ if ('onhashchange' in window) { <span id="L481" class="LineNr"> 481 </span> <span class="Conceal">¦</span> at-wrap?:bool <span class="Special"><-</span> equal cursor-column, wrap-column <span id="L482" class="LineNr"> 482 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> at-wrap? <span id="L483" class="LineNr"> 483 </span> <span class="Conceal">¦</span> <span class="Comment"># and if next character isn't newline</span> -<span id="L484" class="LineNr"> 484 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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="L485" class="LineNr"> 485 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L484" class="LineNr"> 484 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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="L485" class="LineNr"> 485 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L486" class="LineNr"> 486 </span> <span class="Conceal">¦</span> next-character:char <span class="Special"><-</span> get *next, <span class="Constant">value:offset</span> <span id="L487" class="LineNr"> 487 </span> <span class="Conceal">¦</span> newline?:bool <span class="Special"><-</span> equal next-character, <span class="Constant">10/newline</span> <span id="L488" class="LineNr"> 488 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> newline? @@ -783,11 +783,11 @@ if ('onhashchange' in window) { <span id="L721" class="LineNr"> 721 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> move-to-previous-character? <span id="L722" class="LineNr"> 722 </span> <span class="Conceal">¦</span> trace<span class="Constant"> 10</span>, <span class="Constant">[app]</span>, <span class="Constant">[left arrow]</span> <span id="L723" class="LineNr"> 723 </span> <span class="Conceal">¦</span> <span class="Comment"># if not at start of text (before-cursor at § sentinel)</span> -<span id="L724" class="LineNr"> 724 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> before-cursor -<span id="L725" class="LineNr"> 725 </span> <span class="Conceal">¦</span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L36'>prev</a>, <span class="Constant">0/don't-render</span> +<span id="L724" class="LineNr"> 724 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L32'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> before-cursor +<span id="L725" class="LineNr"> 725 </span> <span class="Conceal">¦</span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L32'>prev</a>, <span class="Constant">0/don't-render</span> <span id="L726" class="LineNr"> 726 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <begin-move-cursor></span> <span id="L727" class="LineNr"> 727 </span> <span class="Conceal">¦</span> go-render? <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L156'>move-cursor-coordinates-left</a> editor -<span id="L728" class="LineNr"> 728 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L36'>prev</a> +<span id="L728" class="LineNr"> 728 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L32'>prev</a> <span id="L729" class="LineNr"> 729 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L730" class="LineNr"> 730 </span> <span class="Conceal">¦</span> undo-coalesce-tag:num <span class="Special"><-</span> copy <span class="Constant">1/left-arrow</span> <span id="L731" class="LineNr"> 731 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <end-move-cursor></span> @@ -1100,7 +1100,7 @@ if ('onhashchange' in window) { <span id="L1038" class="LineNr">1038 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> <span id="L1039" class="LineNr">1039 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> greater-or-equal cursor-column, target-column <span id="L1040" class="LineNr">1040 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? -<span id="L1041" class="LineNr">1041 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr:&:<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="L1041" class="LineNr">1041 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> curr:&:<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="L1042" class="LineNr">1042 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> curr <span id="L1043" class="LineNr">1043 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> currc:char <span class="Special"><-</span> get *curr, <span class="Constant">value:offset</span> <span id="L1044" class="LineNr">1044 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> at-newline?:bool <span class="Special"><-</span> equal currc, <span class="Constant">10/newline</span> @@ -1435,9 +1435,9 @@ if ('onhashchange' in window) { <span id="L1373" class="LineNr">1373 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">jump</span> <span class="Constant">+try-to-scroll</span> <span id="L1374" class="LineNr">1374 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L1375" class="LineNr">1375 </span> <span class="Delimiter">}</span> -<span id="L1376" class="LineNr">1376 </span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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="L1376" class="LineNr">1376 </span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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="L1377" class="LineNr">1377 </span> <span class="Delimiter">{</span> -<span id="L1378" class="LineNr">1378 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1378" class="LineNr">1378 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1379" class="LineNr">1379 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> <span id="L1380" class="LineNr">1380 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-bottom-of-screen? <span id="L1381" class="LineNr">1381 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">return</span> <span class="Constant">0/don't-render</span> @@ -1454,19 +1454,19 @@ if ('onhashchange' in window) { <span id="L1392" class="LineNr">1392 </span> <span class="Conceal">¦</span> target-column:num <span class="Special"><-</span> copy cursor-column <span id="L1393" class="LineNr">1393 </span> <span class="Conceal">¦</span> <span class="Comment"># scan to start of next line</span> <span id="L1394" class="LineNr">1394 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> -<span id="L1395" class="LineNr">1395 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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="L1396" class="LineNr">1396 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1395" class="LineNr">1395 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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="L1396" class="LineNr">1396 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1397" class="LineNr">1397 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> greater-or-equal cursor-column, right <span id="L1398" class="LineNr">1398 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? <span id="L1399" class="LineNr">1399 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> cursor-column <span class="Special"><-</span> add cursor-column,<span class="Constant"> 1</span> -<span id="L1400" class="LineNr">1400 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1400" class="LineNr">1400 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1401" class="LineNr">1401 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> c:char <span class="Special"><-</span> get *next, <span class="Constant">value:offset</span> <span id="L1402" class="LineNr">1402 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> at-newline?:bool <span class="Special"><-</span> equal c, <span class="Constant">10/newline</span> <span id="L1403" class="LineNr">1403 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-newline? <span id="L1404" class="LineNr">1404 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L1405" class="LineNr">1405 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L1406" class="LineNr">1406 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> -<span id="L1407" class="LineNr">1407 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1407" class="LineNr">1407 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1408" class="LineNr">1408 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> <span id="L1409" class="LineNr">1409 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-bottom-of-screen? <span id="L1410" class="LineNr">1410 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">return</span> <span class="Constant">0/don't-render</span> @@ -1479,15 +1479,15 @@ if ('onhashchange' in window) { <span id="L1417" class="LineNr">1417 </span> <span class="Conceal">¦</span> cursor-row <span class="Special"><-</span> add cursor-row,<span class="Constant"> 1</span> <span id="L1418" class="LineNr">1418 </span> <span class="Conceal">¦</span> cursor-column <span class="Special"><-</span> copy left <span id="L1419" class="LineNr">1419 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> -<span id="L1420" class="LineNr">1420 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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="L1421" class="LineNr">1421 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1420" class="LineNr">1420 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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="L1421" class="LineNr">1421 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1422" class="LineNr">1422 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> c:char <span class="Special"><-</span> get *next, <span class="Constant">value:offset</span> <span id="L1423" class="LineNr">1423 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> at-newline?:bool <span class="Special"><-</span> equal c, <span class="Constant">10/newline</span> <span id="L1424" class="LineNr">1424 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-newline? <span id="L1425" class="LineNr">1425 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> greater-or-equal cursor-column, target-column <span id="L1426" class="LineNr">1426 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? <span id="L1427" class="LineNr">1427 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> cursor-column <span class="Special"><-</span> add cursor-column,<span class="Constant"> 1</span> -<span id="L1428" class="LineNr">1428 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1428" class="LineNr">1428 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1429" class="LineNr">1429 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L1430" class="LineNr">1430 </span> <span class="Conceal">¦</span> <span class="Delimiter">}</span> <span id="L1431" class="LineNr">1431 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor @@ -1637,7 +1637,7 @@ if ('onhashchange' in window) { <span id="L1575" class="LineNr">1575 </span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> equal col, left <span id="L1576" class="LineNr">1576 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? <span id="L1577" class="LineNr">1577 </span> <span class="Conceal">¦</span> assert curr, <span class="Constant">[move-to-start-of-line tried to move before start of text]</span> -<span id="L1578" class="LineNr">1578 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> curr +<span id="L1578" class="LineNr">1578 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> curr <span id="L1579" class="LineNr">1579 </span> <span class="Conceal">¦</span> col <span class="Special"><-</span> subtract col,<span class="Constant"> 1</span> <span id="L1580" class="LineNr">1580 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L1581" class="LineNr">1581 </span> <span class="Delimiter">}</span> @@ -1855,8 +1855,8 @@ if ('onhashchange' in window) { <span id="L1793" class="LineNr">1793 </span> right:num <span class="Special"><-</span> get *editor, <span class="Constant">right:offset</span> <span id="L1794" class="LineNr">1794 </span> <span class="Comment"># while not at end of line, move</span> <span id="L1795" class="LineNr">1795 </span> <span class="Delimiter">{</span> -<span id="L1796" class="LineNr">1796 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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="L1797" class="LineNr">1797 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L29'>next</a> <span class="Comment"># end of text</span> +<span id="L1796" class="LineNr">1796 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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="L1797" class="LineNr">1797 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L25'>next</a> <span class="Comment"># end of text</span> <span id="L1798" class="LineNr">1798 </span> <span class="Conceal">¦</span> nextc:char <span class="Special"><-</span> get *next, <span class="Constant">value:offset</span> <span id="L1799" class="LineNr">1799 </span> <span class="Conceal">¦</span> at-end-of-line?:bool <span class="Special"><-</span> equal nextc, <span class="Constant">10/newline</span> <span id="L1800" class="LineNr">1800 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-end-of-line? @@ -1864,7 +1864,7 @@ if ('onhashchange' in window) { <span id="L1802" class="LineNr">1802 </span> <span class="Conceal">¦</span> at-right?:bool <span class="Special"><-</span> equal cursor-column, right <span id="L1803" class="LineNr">1803 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-right? <span id="L1804" class="LineNr">1804 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">cursor-column:offset</span>, cursor-column -<span id="L1805" class="LineNr">1805 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L1805" class="LineNr">1805 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L1806" class="LineNr">1806 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L1807" class="LineNr">1807 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L1808" class="LineNr">1808 </span> <span class="Delimiter">}</span> @@ -2043,7 +2043,7 @@ if ('onhashchange' in window) { <span id="L1981" class="LineNr">1981 </span> <span class="Conceal">¦</span> <span class="Comment"># if we have a wrapped line, give up and render the whole screen</span> <span id="L1982" class="LineNr">1982 </span> <span class="Conceal">¦</span> wrap?:bool <span class="Special"><-</span> greater-or-equal i, right <span id="L1983" class="LineNr">1983 </span> <span class="Conceal">¦</span> <span class="muControl">return-if</span> wrap?, <span class="Constant">1/go-render</span> -<span id="L1984" class="LineNr">1984 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L1984" class="LineNr">1984 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L1985" class="LineNr">1985 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> curr <span id="L1986" class="LineNr">1986 </span> <span class="Conceal">¦</span> c:char <span class="Special"><-</span> get *curr, <span class="Constant">value:offset</span> <span id="L1987" class="LineNr">1987 </span> <span class="Conceal">¦</span> b:bool <span class="Special"><-</span> equal c,<span class="Constant"> 10</span> @@ -2074,7 +2074,7 @@ if ('onhashchange' in window) { <span id="L2012" class="LineNr">2012 </span> update-top-of-screen?:bool <span class="Special"><-</span> copy <span class="Constant">0/false</span> <span id="L2013" class="LineNr">2013 </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="L2014" class="LineNr">2014 </span> start:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> copy before-cursor -<span id="L2015" class="LineNr">2015 </span> end:&:<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="L2015" class="LineNr">2015 </span> end:&:<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="L2016" class="LineNr">2016 </span> <span class="Delimiter">{</span> <span id="L2017" class="LineNr">2017 </span> <span class="Conceal">¦</span> at-start-of-text?:bool <span class="Special"><-</span> equal start, init <span id="L2018" class="LineNr">2018 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-start-of-text? @@ -2084,13 +2084,13 @@ if ('onhashchange' in window) { <span id="L2022" class="LineNr">2022 </span> <span class="Conceal">¦</span> <span class="Comment"># if we went past top-of-screen, make a note to update it as well</span> <span id="L2023" class="LineNr">2023 </span> <span class="Conceal">¦</span> at-top-of-screen?:bool <span class="Special"><-</span> equal start, top-of-screen <span id="L2024" class="LineNr">2024 </span> <span class="Conceal">¦</span> update-top-of-screen?:bool <span class="Special"><-</span> or update-top-of-screen?, at-top-of-screen? -<span id="L2025" class="LineNr">2025 </span> <span class="Conceal">¦</span> start <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> start +<span id="L2025" class="LineNr">2025 </span> <span class="Conceal">¦</span> start <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> start <span id="L2026" class="LineNr">2026 </span> <span class="Conceal">¦</span> assert start, <span class="Constant">[delete-to-start-of-line tried to move before start of text]</span> <span id="L2027" class="LineNr">2027 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L2028" class="LineNr">2028 </span> <span class="Delimiter">}</span> <span id="L2029" class="LineNr">2029 </span> <span class="Comment"># snip it out</span> -<span id="L2030" class="LineNr">2030 </span> result:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> start -<span id="L2031" class="LineNr">2031 </span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> start, end +<span id="L2030" class="LineNr">2030 </span> result:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> start +<span id="L2031" class="LineNr">2031 </span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> start, end <span id="L2032" class="LineNr">2032 </span> <span class="Comment"># update top-of-screen if it's just been invalidated</span> <span id="L2033" class="LineNr">2033 </span> <span class="Delimiter">{</span> <span id="L2034" class="LineNr">2034 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> update-top-of-screen? @@ -2631,19 +2631,19 @@ if ('onhashchange' in window) { <span id="L2569" class="LineNr">2569 </span> <span class="Constant">load-ingredients</span> <span id="L2570" class="LineNr">2570 </span> <span class="Comment"># compute range to delete</span> <span id="L2571" class="LineNr">2571 </span> start:&:<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="L2572" class="LineNr">2572 </span> end:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> start +<span id="L2572" class="LineNr">2572 </span> end:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> start <span id="L2573" class="LineNr">2573 </span> <span class="Delimiter">{</span> <span id="L2574" class="LineNr">2574 </span> <span class="Conceal">¦</span> at-end-of-text?:bool <span class="Special"><-</span> equal end, <span class="Constant">0/null</span> <span id="L2575" class="LineNr">2575 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-end-of-text? <span id="L2576" class="LineNr">2576 </span> <span class="Conceal">¦</span> curr:char <span class="Special"><-</span> get *end, <span class="Constant">value:offset</span> <span id="L2577" class="LineNr">2577 </span> <span class="Conceal">¦</span> at-end-of-line?:bool <span class="Special"><-</span> equal curr, <span class="Constant">10/newline</span> <span id="L2578" class="LineNr">2578 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-end-of-line? -<span id="L2579" class="LineNr">2579 </span> <span class="Conceal">¦</span> end <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> end +<span id="L2579" class="LineNr">2579 </span> <span class="Conceal">¦</span> end <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> end <span id="L2580" class="LineNr">2580 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L2581" class="LineNr">2581 </span> <span class="Delimiter">}</span> <span id="L2582" class="LineNr">2582 </span> <span class="Comment"># snip it out</span> -<span id="L2583" class="LineNr">2583 </span> result <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> start -<span id="L2584" class="LineNr">2584 </span> <a href='../065duplex_list.mu.html#L389'>remove-between</a> start, end +<span id="L2583" class="LineNr">2583 </span> result <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> start +<span id="L2584" class="LineNr">2584 </span> <a href='../065duplex_list.mu.html#L385'>remove-between</a> start, end <span id="L2585" class="LineNr">2585 </span>] <span id="L2586" class="LineNr">2586 </span> <span id="L2587" class="LineNr">2587 </span><span class="muScenario">scenario</span> editor-deletes-to-end-of-line-with-ctrl-k-2 [ @@ -2873,7 +2873,7 @@ if ('onhashchange' in window) { <span id="L2811" class="LineNr">2811 </span> <span class="Conceal">¦</span> c:char <span class="Special"><-</span> get *curr, <span class="Constant">value:offset</span> <span id="L2812" class="LineNr">2812 </span> <span class="Conceal">¦</span> at-newline?:bool <span class="Special"><-</span> equal c, <span class="Constant">10/newline</span> <span id="L2813" class="LineNr">2813 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> at-newline? -<span id="L2814" class="LineNr">2814 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L2814" class="LineNr">2814 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L2815" class="LineNr">2815 </span> <span class="Conceal">¦</span> count <span class="Special"><-</span> add count,<span class="Constant"> 1</span> <span id="L2816" class="LineNr">2816 </span> <span class="Delimiter">}</span> <span id="L2817" class="LineNr">2817 </span> <span class="Delimiter">{</span> @@ -2883,7 +2883,7 @@ if ('onhashchange' in window) { <span id="L2821" class="LineNr">2821 </span> <span class="Conceal">¦</span> c:char <span class="Special"><-</span> get *curr, <span class="Constant">value:offset</span> <span id="L2822" class="LineNr">2822 </span> <span class="Conceal">¦</span> at-newline?:bool <span class="Special"><-</span> equal c, <span class="Constant">10/newline</span> <span id="L2823" class="LineNr">2823 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-newline? -<span id="L2824" class="LineNr">2824 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L2824" class="LineNr">2824 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L2825" class="LineNr">2825 </span> <span class="Conceal">¦</span> count <span class="Special"><-</span> add count,<span class="Constant"> 1</span> <span id="L2826" class="LineNr">2826 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L2827" class="LineNr">2827 </span> <span class="Delimiter">}</span> @@ -3250,9 +3250,9 @@ if ('onhashchange' in window) { <span id="L3188" class="LineNr">3188 </span> <span class="Delimiter">{</span> <span id="L3189" class="LineNr">3189 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> len <span id="L3190" class="LineNr">3190 </span> <span class="Conceal">¦</span> <span class="Comment"># empty line; just skip this newline</span> -<span id="L3191" class="LineNr">3191 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> curr -<span id="L3192" class="LineNr">3192 </span> <span class="Conceal">¦</span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L36'>prev</a>, curr -<span id="L3193" class="LineNr">3193 </span> <span class="Conceal">¦</span> <span class="muControl">return</span> <a href='../065duplex_list.mu.html#L36'>prev</a> +<span id="L3191" class="LineNr">3191 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L32'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> curr +<span id="L3192" class="LineNr">3192 </span> <span class="Conceal">¦</span> <span class="muControl">return-unless</span> <a href='../065duplex_list.mu.html#L32'>prev</a>, curr +<span id="L3193" class="LineNr">3193 </span> <span class="Conceal">¦</span> <span class="muControl">return</span> <a href='../065duplex_list.mu.html#L32'>prev</a> <span id="L3194" class="LineNr">3194 </span> <span class="Delimiter">}</span> <span id="L3195" class="LineNr">3195 </span> _, max:num <span class="Special"><-</span> divide-with-remainder len, max-line-length <span id="L3196" class="LineNr">3196 </span> <span class="Comment"># remainder 0 => scan one width-worth</span> @@ -3266,9 +3266,9 @@ if ('onhashchange' in window) { <span id="L3204" class="LineNr">3204 </span> <span class="Delimiter">{</span> <span id="L3205" class="LineNr">3205 </span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> greater-or-equal count, max <span id="L3206" class="LineNr">3206 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? -<span id="L3207" class="LineNr">3207 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> curr -<span id="L3208" class="LineNr">3208 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L36'>prev</a> -<span id="L3209" class="LineNr">3209 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L36'>prev</a> +<span id="L3207" class="LineNr">3207 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L32'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> curr +<span id="L3208" class="LineNr">3208 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L32'>prev</a> +<span id="L3209" class="LineNr">3209 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L32'>prev</a> <span id="L3210" class="LineNr">3210 </span> <span class="Conceal">¦</span> count <span class="Special"><-</span> add count,<span class="Constant"> 1</span> <span id="L3211" class="LineNr">3211 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L3212" class="LineNr">3212 </span> <span class="Delimiter">}</span> @@ -3664,14 +3664,14 @@ if ('onhashchange' in window) { <span id="L3602" class="LineNr">3602 </span> <span class="muControl">return-unless</span> bottom-of-screen <span id="L3603" class="LineNr">3603 </span> <span class="Comment"># if not, position cursor at final character</span> <span id="L3604" class="LineNr">3604 </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="L3605" class="LineNr">3605 </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> bottom-of-screen +<span id="L3605" class="LineNr">3605 </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> bottom-of-screen <span id="L3606" class="LineNr">3606 </span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L3607" class="LineNr">3607 </span> <span class="Comment"># keep one line in common with previous page</span> <span id="L3608" class="LineNr">3608 </span> <span class="Delimiter">{</span> -<span id="L3609" class="LineNr">3609 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L576'>last</a>:char <span class="Special"><-</span> get *before-cursor, <span class="Constant">value:offset</span> -<span id="L3610" class="LineNr">3610 </span> <span class="Conceal">¦</span> newline?:bool <span class="Special"><-</span> equal <a href='../065duplex_list.mu.html#L576'>last</a>, <span class="Constant">10/newline</span> +<span id="L3609" class="LineNr">3609 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L572'>last</a>:char <span class="Special"><-</span> get *before-cursor, <span class="Constant">value:offset</span> +<span id="L3610" class="LineNr">3610 </span> <span class="Conceal">¦</span> newline?:bool <span class="Special"><-</span> equal <a href='../065duplex_list.mu.html#L572'>last</a>, <span class="Constant">10/newline</span> <span id="L3611" class="LineNr">3611 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> newline?:bool -<span id="L3612" class="LineNr">3612 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> before-cursor +<span id="L3612" class="LineNr">3612 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> before-cursor <span id="L3613" class="LineNr">3613 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L3614" class="LineNr">3614 </span> <span class="Delimiter">}</span> <span id="L3615" class="LineNr">3615 </span> <span class="Comment"># move cursor and top-of-screen to start of that line</span> @@ -3695,10 +3695,10 @@ if ('onhashchange' in window) { <span id="L3633" class="LineNr">3633 </span> <span class="Delimiter">{</span> <span id="L3634" class="LineNr">3634 </span> <span class="Conceal">¦</span> at-start-of-text?:bool <span class="Special"><-</span> equal before-cursor, init <span id="L3635" class="LineNr">3635 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-start-of-text? -<span id="L3636" class="LineNr">3636 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a>:char <span class="Special"><-</span> get *before-cursor, <span class="Constant">value:offset</span> -<span id="L3637" class="LineNr">3637 </span> <span class="Conceal">¦</span> at-start-of-line?:bool <span class="Special"><-</span> equal <a href='../065duplex_list.mu.html#L36'>prev</a>, <span class="Constant">10/newline</span> +<span id="L3636" class="LineNr">3636 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L32'>prev</a>:char <span class="Special"><-</span> get *before-cursor, <span class="Constant">value:offset</span> +<span id="L3637" class="LineNr">3637 </span> <span class="Conceal">¦</span> at-start-of-line?:bool <span class="Special"><-</span> equal <a href='../065duplex_list.mu.html#L32'>prev</a>, <span class="Constant">10/newline</span> <span id="L3638" class="LineNr">3638 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> at-start-of-line? -<span id="L3639" class="LineNr">3639 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L36'>prev</a> before-cursor +<span id="L3639" class="LineNr">3639 </span> <span class="Conceal">¦</span> before-cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L32'>prev</a> before-cursor <span id="L3640" class="LineNr">3640 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">before-cursor:offset</span>, before-cursor <span id="L3641" class="LineNr">3641 </span> <span class="Conceal">¦</span> assert before-cursor, <span class="Constant">[move-to-start-of-line tried to move before start of text]</span> <span id="L3642" class="LineNr">3642 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> @@ -3888,9 +3888,9 @@ if ('onhashchange' in window) { <span id="L3826" class="LineNr">3826 </span> <span class="Delimiter">{</span> <span id="L3827" class="LineNr">3827 </span> <span class="Conceal">¦</span> done?:bool <span class="Special"><-</span> greater-or-equal count, max <span id="L3828" class="LineNr">3828 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> done? -<span id="L3829" class="LineNr">3829 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L36'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L3175'>before-previous-screen-line</a> top-of-screen, editor -<span id="L3830" class="LineNr">3830 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L36'>prev</a> -<span id="L3831" class="LineNr">3831 </span> <span class="Conceal">¦</span> top-of-screen <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L36'>prev</a> +<span id="L3829" class="LineNr">3829 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L32'>prev</a>:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L3175'>before-previous-screen-line</a> top-of-screen, editor +<span id="L3830" class="LineNr">3830 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L32'>prev</a> +<span id="L3831" class="LineNr">3831 </span> <span class="Conceal">¦</span> top-of-screen <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L32'>prev</a> <span id="L3832" class="LineNr">3832 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">top-of-screen:offset</span>, top-of-screen <span id="L3833" class="LineNr">3833 </span> <span class="Conceal">¦</span> count <span class="Special"><-</span> add count,<span class="Constant"> 1</span> <span id="L3834" class="LineNr">3834 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> @@ -4262,7 +4262,7 @@ if ('onhashchange' in window) { <span id="L4200" class="LineNr">4200 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <begin-move-cursor></span> <span id="L4201" class="LineNr">4201 </span> <span class="Conceal">¦</span> old-top:&:<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="L4202" class="LineNr">4202 </span> <span class="Conceal">¦</span> 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="L4203" class="LineNr">4203 </span> <span class="Conceal">¦</span> cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> cursor +<span id="L4203" class="LineNr">4203 </span> <span class="Conceal">¦</span> cursor <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> cursor <span id="L4204" class="LineNr">4204 </span> <span class="Conceal">¦</span> new-top:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L3175'>before-previous-screen-line</a> cursor, editor <span id="L4205" class="LineNr">4205 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">top-of-screen:offset</span>, new-top <span id="L4206" class="LineNr">4206 </span> <span class="Conceal">¦</span> *editor <span class="Special"><-</span> put *editor, <span class="Constant">cursor-row:offset</span>,<span class="Constant"> 1</span> @@ -4283,8 +4283,8 @@ if ('onhashchange' in window) { <span id="L4221" class="LineNr">4221 </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="L4222" class="LineNr">4222 </span><span class="Constant"> </span><span class="Conceal">¦</span><span class="Constant"> <begin-insert-character></span> <span id="L4223" class="LineNr">4223 </span> <span class="Conceal">¦</span> before-line-start:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L4280'>before-start-of-screen-line</a> editor -<span id="L4224" class="LineNr">4224 </span> <span class="Conceal">¦</span> line-start:&:<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-line-start -<span id="L4225" class="LineNr">4225 </span> <span class="Conceal">¦</span> commented-out?:bool <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L589'>match</a> line-start, <span class="Constant">[#? ]</span> <span class="Comment"># comment prefix</span> +<span id="L4224" class="LineNr">4224 </span> <span class="Conceal">¦</span> line-start:&:<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-line-start +<span id="L4225" class="LineNr">4225 </span> <span class="Conceal">¦</span> commented-out?:bool <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L585'>match</a> line-start, <span class="Constant">[#? ]</span> <span class="Comment"># comment prefix</span> <span id="L4226" class="LineNr">4226 </span> <span class="Conceal">¦</span> <span class="Delimiter">{</span> <span id="L4227" class="LineNr">4227 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> commented-out? <span id="L4228" class="LineNr">4228 </span> <span class="Conceal">¦</span> <span class="Conceal">¦</span> <span class="Comment"># uncomment</span> @@ -4313,7 +4313,7 @@ if ('onhashchange' in window) { <span id="L4251" class="LineNr">4251 </span> <span class="Constant">local-scope</span> <span id="L4252" class="LineNr">4252 </span> <span class="Constant">load-ingredients</span> <span id="L4253" class="LineNr">4253 </span> before-line-start:&:<a href='../065duplex_list.mu.html#L3'>duplex-list</a>:char <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L4280'>before-start-of-screen-line</a> editor -<span id="L4254" class="LineNr">4254 </span> line-start:&:<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-line-start +<span id="L4254" class="LineNr">4254 </span> line-start:&:<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-line-start <span id="L4255" class="LineNr">4255 </span> color:num <span class="Special"><-</span> copy <span class="Constant">7/white</span> <span id="L4256" class="LineNr">4256 </span> left:num <span class="Special"><-</span> get *editor, <span class="Constant">left:offset</span> <span id="L4257" class="LineNr">4257 </span> cursor-row:num <span class="Special"><-</span> get *editor, <span class="Constant">cursor-row:offset</span> @@ -4331,7 +4331,7 @@ if ('onhashchange' in window) { <span id="L4269" class="LineNr">4269 </span> <span class="Conceal">¦</span> <span class="muControl">break-if</span> newline? <span id="L4270" class="LineNr">4270 </span> <span class="Conceal">¦</span> color <span class="Special"><-</span> <a href='001-editor.mu.html#L397'>get-color</a> color, c <span id="L4271" class="LineNr">4271 </span> <span class="Conceal">¦</span> print <a href='../081print.mu.html#L16'>screen</a>, c, color -<span id="L4272" class="LineNr">4272 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L29'>next</a> curr +<span id="L4272" class="LineNr">4272 </span> <span class="Conceal">¦</span> curr <span class="Special"><-</span> <a href='../065duplex_list.mu.html#L25'>next</a> curr <span id="L4273" class="LineNr">4273 </span> <span class="Conceal">¦</span> i <span class="Special"><-</span> add i,<span class="Constant"> 1</span> <span id="L4274" class="LineNr">4274 </span> <span class="Conceal">¦</span> <span class="muControl">loop</span> <span id="L4275" class="LineNr">4275 </span> <span class="Delimiter">}</span> @@ -4344,9 +4344,9 @@ if ('onhashchange' in window) { <span id="L4282" class="LineNr">4282 </span> <span class="Constant">load-ingredients</span> <span id="L4283" class="LineNr">4283 </span> 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="L4284" class="LineNr">4284 </span> <span class="Delimiter">{</span> -<span id="L4285" class="LineNr">4285 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L29'>next</a>:&:<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 -<span id="L4286" class="LineNr">4286 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L29'>next</a> -<span id="L4287" class="LineNr">4287 </span> <span class="Conceal">¦</span> cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L29'>next</a> +<span id="L4285" class="LineNr">4285 </span> <span class="Conceal">¦</span> <a href='../065duplex_list.mu.html#L25'>next</a>:&:<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 +<span id="L4286" class="LineNr">4286 </span> <span class="Conceal">¦</span> <span class="muControl">break-unless</span> <a href='../065duplex_list.mu.html#L25'>next</a> +<span id="L4287" class="LineNr">4287 </span> <span class="Conceal">¦</span> cursor <span class="Special"><-</span> copy <a href='../065duplex_list.mu.html#L25'>next</a> <span id="L4288" class="LineNr">4288 </span> <span class="Delimiter">}</span> <span id="L4289" class="LineNr">4289 </span> result <span class="Special"><-</span> <a href='003-shortcuts.mu.html#L3175'>before-previous-screen-line</a> cursor, editor <span id="L4290" class="LineNr">4290 </span>] |