extract couple of functions

[?]
May 25, 2022, 10:25 PM
KECEMMMRW2VVBZ567HJQPGLC57LTSBKWH7UFP32IW43D23X6WTEQC

Dependencies

  • [2] MDXGMZU2 disable all debug prints
  • [3] DLQMM265 scroll past first page
  • [4] DAENUOGV eliminate assumptions that line length == size in bytes
  • [5] 2RXZ3PGO beginning of a new approach to scroll+wrap
  • [6] 2ZYV7D3W handle tab characters
  • [7] XNFTJHC4 split keyboard handling between Text and Drawing
  • [*] BULPIBEG beginnings of a module for the text editor
  • [*] SVJZZDC3 snapshot - no, that's all wrong

Change contents

  • replacement in text.lua at line 772
    [3.1036][3.1131:1240](),[3.1240][3.1141:1150](),[3.1141][3.1141:1150](),[3.1150][3.1241:1284](),[3.1284][3.1192:1325](),[3.1192][3.1192:1325](),[3.1325][3.1285:1389](),[3.175][3.1415:1443](),[3.1389][3.1415:1443](),[3.1415][3.1415:1443](),[3.1443][3.1:11](),[3.11][3.1390:1476](),[3.93][3.1443:1461](),[3.1476][3.1443:1461](),[3.1443][3.1443:1461]()
    assert(Lines[Cursor1.line].mode == 'text')
    if Cursor1.pos > 1 then
    Cursor1.pos = Cursor1.pos-1
    else
    local new_cursor_line = Cursor1.line
    while new_cursor_line > 1 do
    new_cursor_line = new_cursor_line-1
    if Lines[new_cursor_line].mode == 'text' then
    Cursor1.line = new_cursor_line
    Cursor1.pos = utf8.len(Lines[Cursor1.line].data) + 1
    break
    end
    end
    if Cursor1.line < Screen_top1.line then
    Screen_top1.line = Cursor1.line
    end
    end
    [3.1036]
    [3.1461]
    Text.left()
  • replacement in text.lua at line 774
    [3.1492][3.1477:1620](),[3.1620][3.1621:1630](),[3.1621][3.1621:1630](),[3.1630][3.1621:1664](),[3.1664][3.1672:1813](),[3.1672][3.1672:1813](),[3.1813][3.1665:1732](),[3.1732][3.1878:1916](),[3.1878][3.1878:1916](),[3.1916][3.1733:1822](),[3.1822][3.179:189](),[3.179][3.179:189](),[3.189][3.1916:1924](),[3.1916][3.1916:1924]()
    assert(Lines[Cursor1.line].mode == 'text')
    if Cursor1.pos <= utf8.len(Lines[Cursor1.line].data) then
    Cursor1.pos = Cursor1.pos+1
    else
    local new_cursor_line = Cursor1.line
    while new_cursor_line <= #Lines-1 do
    new_cursor_line = new_cursor_line+1
    if Lines[new_cursor_line].mode == 'text' then
    Cursor1.line = new_cursor_line
    Cursor1.pos = 1
    break
    end
    end
    if Cursor1.line > Screen_bottom1.line then
    Screen_top1.line = Cursor1.line
    end
    end
    [3.1492]
    [3.1924]
    Text.right()
  • edit in text.lua at line 925
    [2.1453]
    [10.1321]
    end
    end
    function Text.left()
    assert(Lines[Cursor1.line].mode == 'text')
    if Cursor1.pos > 1 then
    Cursor1.pos = Cursor1.pos-1
    else
    local new_cursor_line = Cursor1.line
    while new_cursor_line > 1 do
    new_cursor_line = new_cursor_line-1
    if Lines[new_cursor_line].mode == 'text' then
    Cursor1.line = new_cursor_line
    Cursor1.pos = utf8.len(Lines[Cursor1.line].data) + 1
    break
    end
    end
    if Cursor1.line < Screen_top1.line then
    Screen_top1.line = Cursor1.line
    end
    end
    end
    function Text.right()
    assert(Lines[Cursor1.line].mode == 'text')
    if Cursor1.pos <= utf8.len(Lines[Cursor1.line].data) then
    Cursor1.pos = Cursor1.pos+1
    else
    local new_cursor_line = Cursor1.line
    while new_cursor_line <= #Lines-1 do
    new_cursor_line = new_cursor_line+1
    if Lines[new_cursor_line].mode == 'text' then
    Cursor1.line = new_cursor_line
    Cursor1.pos = 1
    break
    end
    end
    if Cursor1.line > Screen_bottom1.line then
    Screen_top1.line = Cursor1.line
    end