add state arg to Text.keychord_pressed

[?]
Jul 12, 2022, 11:23 PM
SPSW74Y5OJ54Y7VQ3SJFCJR5CYDKTR4A3TOEVZODDZLUSDDU2GZAC

Dependencies

  • [2] LNUHQOGH start passing in Editor_state explicitly
  • [3] 7LVK4KRD fix a failing test
  • [4] OYXDYPGS get rid of debug variables
  • [5] PHFWIFYK scroll on enter
  • [6] GN3IF4WF bugfix: pasting newlines
  • [7] 2ZYV7D3W handle tab characters
  • [8] V5MJRFOZ bugfix: down arrow doesn't scroll up unnecessarily
  • [9] 73OCE2MC after much struggle, a brute-force undo
  • [10] ZHLO7K3M add args to some functions
  • [11] PX7DDEMO autosave slightly less aggressively
  • [12] AYE2VEGJ extract a couple of methods
  • [13] VJ77YABH more efficient undo/redo
  • [14] 3TDOZESE extract scrolling logic out of insert_return
  • [15] 2L5MEZV3 experiment: new edit namespace
  • [16] LF7BWEG4 group all editor globals
  • [17] DHI6IJCN selecting text and deleting selections
  • [18] MP2TBKU6 bugfix: crash in Text.up() after return
  • [19] DAENUOGV eliminate assumptions that line length == size in bytes
  • [20] HTWAM4NZ bugfix: scrolling in left/right movements
  • [21] FYS7TCDW bugfix
  • [22] 537TQ2QN some more logging
  • [23] 2RXZ3PGO beginning of a new approach to scroll+wrap
  • [24] OGUV4HSA remove some memory leaks from rendered fragments
  • [25] IRCKL6VN extract scrolling logic out of insert_at_cursor
  • [26] 4KOI3E6R remove some redundant checks
  • [27] AOIRVVJA revert selection logic to before commit 3ffc2ed8f
  • [28] PLKNHYZ4 extract a function
  • [29] NZKYPBSK check for scroll when just typing
  • [30] X75QPYVW move Selection1 clearing past business logic
  • [31] AMSESRTH move some code
  • [32] DLQMM265 scroll past first page
  • [33] EMHRPJ3R no, that's not right
  • [34] EBBFOW4X bugfix: clear selection in a couple more places
  • [35] XNFTJHC4 split keyboard handling between Text and Drawing
  • [36] SQLVYKVJ rename
  • [37] KOYAJWE4 extract a couple more methods
  • [38] JY4VK7L2 rename
  • [39] H2DPLWMV snapshot: wrapping long lines at word boundaries
  • [40] VA2ZYFFF better fix for commit 3ffc2ed8f
  • [41] CG3264MM move
  • [42] ZPUQSPQP extract a few methods
  • [43] 2POFQQLW keep cursor on screen when pressing 'down'
  • [44] HMODUNJE scroll on backspace
  • [45] SVJZZDC3 snapshot - no, that's all wrong
  • [46] AVLAYODP much simpler
  • [*] BULPIBEG beginnings of a module for the text editor

Change contents

  • replacement in text.lua at line 159
    [3.589][3.589:627](),[3.627][3.57059:57146]()
    function Text.keychord_pressed(chord)
    --? print('chord', chord, Editor_state.selection1.line, Editor_state.selection1.pos)
    [3.589]
    [3.1]
    function Text.keychord_pressed(State, chord)
    --? print('chord', chord, State.selection1.line, State.selection1.pos)
  • replacement in text.lua at line 163
    [3.655][3.57147:57197]()
    local before_line = Editor_state.cursor1.line
    [3.655]
    [3.1380]
    local before_line = State.cursor1.line
  • replacement in text.lua at line 166
    [3.27][3.57198:57427]()
    Editor_state.selection1 = {}
    if (Editor_state.cursor_y + Editor_state.line_height) > App.screen.height then
    Text.snap_cursor_to_bottom_of_screen(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.27]
    [3.105]
    State.selection1 = {}
    if (State.cursor_y + State.line_height) > App.screen.height then
    Text.snap_cursor_to_bottom_of_screen(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 171
    [3.23][3.57428:57523]()
    record_undo_event({before=before, after=snapshot(before_line, Editor_state.cursor1.line)})
    [3.23]
    [3.134]
    record_undo_event({before=before, after=snapshot(before_line, State.cursor1.line)})
  • replacement in text.lua at line 173
    [3.163][3.57524:57774]()
    local before = snapshot(Editor_state.cursor1.line)
    --? print(Editor_state.screen_top1.line, Editor_state.screen_top1.pos, Editor_state.cursor1.line, Editor_state.cursor1.pos, Editor_state.screen_bottom1.line, Editor_state.screen_bottom1.pos)
    [3.163]
    [3.163]
    local before = snapshot(State.cursor1.line)
    --? print(State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos, State.screen_bottom1.line, State.screen_bottom1.pos)
  • replacement in text.lua at line 176
    [3.195][3.57775:58335]()
    if Editor_state.cursor_y >= App.screen.height - Editor_state.line_height then
    Text.populate_screen_line_starting_pos(Editor_state.lines[Editor_state.cursor1.line], Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Text.snap_cursor_to_bottom_of_screen(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    --? print('=>', Editor_state.screen_top1.line, Editor_state.screen_top1.pos, Editor_state.cursor1.line, Editor_state.cursor1.pos, Editor_state.screen_bottom1.line, Editor_state.screen_bottom1.pos)
    [3.195]
    [3.806]
    if State.cursor_y >= App.screen.height - State.line_height then
    Text.populate_screen_line_starting_pos(State.lines[State.cursor1.line], State.margin_left, App.screen.width-State.margin_right)
    Text.snap_cursor_to_bottom_of_screen(State.margin_left, App.screen.width-State.margin_right)
    --? print('=>', State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos, State.screen_bottom1.line, State.screen_bottom1.pos)
  • replacement in text.lua at line 182
    [3.44][3.58336:58418]()
    record_undo_event({before=before, after=snapshot(Editor_state.cursor1.line)})
    [3.44]
    [3.2046]
    record_undo_event({before=before, after=snapshot(State.cursor1.line)})
  • replacement in text.lua at line 184
    [3.2081][3.58419:58558]()
    if Editor_state.selection1.line then
    Text.delete_selection(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.2081]
    [3.45]
    if State.selection1.line then
    Text.delete_selection(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 190
    [3.1635][3.58559:58881]()
    if Editor_state.cursor1.pos > 1 then
    before = snapshot(Editor_state.cursor1.line)
    local byte_start = utf8.offset(Editor_state.lines[Editor_state.cursor1.line].data, Editor_state.cursor1.pos-1)
    local byte_end = utf8.offset(Editor_state.lines[Editor_state.cursor1.line].data, Editor_state.cursor1.pos)
    [3.1635]
    [3.2256]
    if State.cursor1.pos > 1 then
    before = snapshot(State.cursor1.line)
    local byte_start = utf8.offset(State.lines[State.cursor1.line].data, State.cursor1.pos-1)
    local byte_end = utf8.offset(State.lines[State.cursor1.line].data, State.cursor1.pos)
  • replacement in text.lua at line 196
    [3.2306][3.58882:59099]()
    Editor_state.lines[Editor_state.cursor1.line].data = string.sub(Editor_state.lines[Editor_state.cursor1.line].data, 1, byte_start-1)..string.sub(Editor_state.lines[Editor_state.cursor1.line].data, byte_end)
    [3.2306]
    [3.2442]
    State.lines[State.cursor1.line].data = string.sub(State.lines[State.cursor1.line].data, 1, byte_start-1)..string.sub(State.lines[State.cursor1.line].data, byte_end)
  • replacement in text.lua at line 198
    [3.2455][3.59100:59243]()
    Editor_state.lines[Editor_state.cursor1.line].data = string.sub(Editor_state.lines[Editor_state.cursor1.line].data, 1, byte_start-1)
    [3.2455]
    [3.2544]
    State.lines[State.cursor1.line].data = string.sub(State.lines[State.cursor1.line].data, 1, byte_start-1)
  • replacement in text.lua at line 200
    [3.2556][3.59244:59306]()
    Editor_state.cursor1.pos = Editor_state.cursor1.pos-1
    [3.2556]
    [3.2590]
    State.cursor1.pos = State.cursor1.pos-1
  • replacement in text.lua at line 202
    [3.2600][3.59307:59583]()
    elseif Editor_state.cursor1.line > 1 then
    before = snapshot(Editor_state.cursor1.line-1, Editor_state.cursor1.line)
    if Editor_state.lines[Editor_state.cursor1.line-1].mode == 'drawing' then
    table.remove(Editor_state.lines, Editor_state.cursor1.line-1)
    [3.2600]
    [3.2728]
    elseif State.cursor1.line > 1 then
    before = snapshot(State.cursor1.line-1, State.cursor1.line)
    if State.lines[State.cursor1.line-1].mode == 'drawing' then
    table.remove(State.lines, State.cursor1.line-1)
  • replacement in text.lua at line 208
    [3.2761][3.59584:59920]()
    Editor_state.cursor1.pos = utf8.len(Editor_state.lines[Editor_state.cursor1.line-1].data)+1
    Editor_state.lines[Editor_state.cursor1.line-1].data = Editor_state.lines[Editor_state.cursor1.line-1].data..Editor_state.lines[Editor_state.cursor1.line].data
    table.remove(Editor_state.lines, Editor_state.cursor1.line)
    [3.2761]
    [3.2948]
    State.cursor1.pos = utf8.len(State.lines[State.cursor1.line-1].data)+1
    State.lines[State.cursor1.line-1].data = State.lines[State.cursor1.line-1].data..State.lines[State.cursor1.line].data
    table.remove(State.lines, State.cursor1.line)
  • replacement in text.lua at line 212
    [3.2958][3.59921:59983]()
    Editor_state.cursor1.line = Editor_state.cursor1.line-1
    [3.2958]
    [3.2858]
    State.cursor1.line = State.cursor1.line-1
  • replacement in text.lua at line 214
    [3.2866][3.59984:60340]()
    if Text.lt1(Editor_state.cursor1, Editor_state.screen_top1) then
    local top2 = Text.to2(Editor_state.screen_top1, Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    top2 = Text.previous_screen_line(top2, Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.screen_top1 = Text.to1(top2)
    [3.2866]
    [3.3]
    if Text.lt1(State.cursor1, State.screen_top1) then
    local top2 = Text.to2(State.screen_top1, State.margin_left, App.screen.width-State.margin_right)
    top2 = Text.previous_screen_line(top2, State.margin_left, App.screen.width-State.margin_right)
    State.screen_top1 = Text.to1(top2)
  • replacement in text.lua at line 220
    [3.3000][3.60341:60478]()
    Text.clear_cache(Editor_state.lines[Editor_state.cursor1.line])
    assert(Text.le1(Editor_state.screen_top1, Editor_state.cursor1))
    [3.3000]
    [3.68]
    Text.clear_cache(State.lines[State.cursor1.line])
    assert(Text.le1(State.screen_top1, State.cursor1))
  • replacement in text.lua at line 223
    [3.88][3.60479:60561]()
    record_undo_event({before=before, after=snapshot(Editor_state.cursor1.line)})
    [3.88]
    [3.3034]
    record_undo_event({before=before, after=snapshot(State.cursor1.line)})
  • replacement in text.lua at line 225
    [3.3066][3.60562:60701]()
    if Editor_state.selection1.line then
    Text.delete_selection(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.3066]
    [3.89]
    if State.selection1.line then
    Text.delete_selection(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 231
    [3.1869][3.60702:60854]()
    if Editor_state.cursor1.pos <= utf8.len(Editor_state.lines[Editor_state.cursor1.line].data) then
    before = snapshot(Editor_state.cursor1.line)
    [3.1869]
    [3.1969]
    if State.cursor1.pos <= utf8.len(State.lines[State.cursor1.line].data) then
    before = snapshot(State.cursor1.line)
  • replacement in text.lua at line 234
    [3.1978][3.60855:60935]()
    before = snapshot(Editor_state.cursor1.line, Editor_state.cursor1.line+1)
    [3.1978]
    [3.8546]
    before = snapshot(State.cursor1.line, State.cursor1.line+1)
  • replacement in text.lua at line 236
    [3.8554][3.60936:61267]()
    if Editor_state.cursor1.pos <= utf8.len(Editor_state.lines[Editor_state.cursor1.line].data) then
    local byte_start = utf8.offset(Editor_state.lines[Editor_state.cursor1.line].data, Editor_state.cursor1.pos)
    local byte_end = utf8.offset(Editor_state.lines[Editor_state.cursor1.line].data, Editor_state.cursor1.pos+1)
    [3.8554]
    [3.3265]
    if State.cursor1.pos <= utf8.len(State.lines[State.cursor1.line].data) then
    local byte_start = utf8.offset(State.lines[State.cursor1.line].data, State.cursor1.pos)
    local byte_end = utf8.offset(State.lines[State.cursor1.line].data, State.cursor1.pos+1)
  • replacement in text.lua at line 241
    [3.3315][3.61268:61485]()
    Editor_state.lines[Editor_state.cursor1.line].data = string.sub(Editor_state.lines[Editor_state.cursor1.line].data, 1, byte_start-1)..string.sub(Editor_state.lines[Editor_state.cursor1.line].data, byte_end)
    [3.3315]
    [3.3451]
    State.lines[State.cursor1.line].data = string.sub(State.lines[State.cursor1.line].data, 1, byte_start-1)..string.sub(State.lines[State.cursor1.line].data, byte_end)
  • replacement in text.lua at line 243
    [3.3464][3.61486:61629]()
    Editor_state.lines[Editor_state.cursor1.line].data = string.sub(Editor_state.lines[Editor_state.cursor1.line].data, 1, byte_start-1)
    [3.3464]
    [3.3553]
    State.lines[State.cursor1.line].data = string.sub(State.lines[State.cursor1.line].data, 1, byte_start-1)
  • replacement in text.lua at line 245
    [3.3565][3.61630:61679]()
    -- no change to Editor_state.cursor1.pos
    [3.3565]
    [3.3600]
    -- no change to State.cursor1.pos
  • replacement in text.lua at line 247
    [3.3610][3.61680:61894]()
    elseif Editor_state.cursor1.line < #Editor_state.lines then
    if Editor_state.lines[Editor_state.cursor1.line+1].mode == 'drawing' then
    table.remove(Editor_state.lines, Editor_state.cursor1.line+1)
    [3.3610]
    [3.3743]
    elseif State.cursor1.line < #State.lines then
    if State.lines[State.cursor1.line+1].mode == 'drawing' then
    table.remove(State.lines, State.cursor1.line+1)
  • replacement in text.lua at line 252
    [3.3776][3.61895:62131]()
    Editor_state.lines[Editor_state.cursor1.line].data = Editor_state.lines[Editor_state.cursor1.line].data..Editor_state.lines[Editor_state.cursor1.line+1].data
    table.remove(Editor_state.lines, Editor_state.cursor1.line+1)
    [3.3776]
    [3.3904]
    State.lines[State.cursor1.line].data = State.lines[State.cursor1.line].data..State.lines[State.cursor1.line+1].data
    table.remove(State.lines, State.cursor1.line+1)
  • replacement in text.lua at line 256
    [3.3922][3.62132:62200]()
    Text.clear_cache(Editor_state.lines[Editor_state.cursor1.line])
    [3.3922]
    [3.112]
    Text.clear_cache(State.lines[State.cursor1.line])
  • replacement in text.lua at line 258
    [3.132][3.62201:62283]()
    record_undo_event({before=before, after=snapshot(Editor_state.cursor1.line)})
    [3.132]
    [3.209]
    record_undo_event({before=before, after=snapshot(State.cursor1.line)})
  • replacement in text.lua at line 261
    [3.277][3.62284:62401]()
    Text.left(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.277]
    [3.293]
    Text.left(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 264
    [3.324][3.62402:62520]()
    Text.right(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.324]
    [3.8673]
    Text.right(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 267
    [3.8705][3.62521:62664]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.8705]
    [3.8796]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 270
    [3.8804][3.62665:62749]()
    Text.left(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.8804]
    [3.8820]
    Text.left(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 272
    [3.8853][3.62750:62893]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.8853]
    [3.8944]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 275
    [3.8952][3.62894:62979]()
    Text.right(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.8952]
    [3.369]
    Text.right(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 278
    [3.456][3.62980:63102]()
    Text.word_left(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.456]
    [3.761]
    Text.word_left(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 281
    [3.794][3.63103:63226]()
    Text.word_right(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.794]
    [3.9088]
    Text.word_right(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 284
    [3.9122][3.63227:63370]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.9122]
    [3.9213]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 287
    [3.9221][3.63371:63460]()
    Text.word_left(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.9221]
    [3.9242]
    Text.word_left(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 289
    [3.9277][3.63461:63604]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.9277]
    [3.9368]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 292
    [3.9376][3.63605:63695]()
    Text.word_right(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.9376]
    [3.1073]
    Text.word_right(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 295
    [3.6016][3.63696:63729]()
    Editor_state.selection1 = {}
    [3.6016]
    [3.86]
    State.selection1 = {}
  • replacement in text.lua at line 297
    [3.115][3.63730:63854]()
    Text.end_of_line(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.115]
    [3.9517]
    Text.end_of_line(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 300
    [3.9549][3.63855:63998]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.9549]
    [3.9640]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 305
    [3.9699][3.63999:64142]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.9699]
    [3.9790]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 308
    [3.9798][3.64143:64234]()
    Text.end_of_line(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.9798]
    [3.3956]
    Text.end_of_line(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 310
    [3.3984][3.64235:64350]()
    Text.up(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.3984]
    [3.4433]
    Text.up(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 313
    [3.4463][3.64351:64468]()
    Text.down(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.4463]
    [3.9989]
    Text.down(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 316
    [3.10019][3.64469:64612]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.10019]
    [3.10110]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 319
    [3.10118][3.64613:64695]()
    Text.up(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.10118]
    [3.10132]
    Text.up(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 321
    [3.10164][3.64696:64839]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.10164]
    [3.10255]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 324
    [3.10263][3.64840:64924]()
    Text.down(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.10263]
    [3.1]
    Text.down(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 326
    [3.33][3.64925:65044]()
    Text.pageup(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.33]
    [3.859]
    Text.pageup(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 329
    [3.893][3.65045:65166]()
    Text.pagedown(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    Editor_state.selection1 = {}
    [3.893]
    [3.10401]
    Text.pagedown(State.margin_left, App.screen.width-State.margin_right)
    State.selection1 = {}
  • replacement in text.lua at line 332
    [3.10435][3.65167:65310]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.10435]
    [3.10526]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 335
    [3.10534][3.65311:65397]()
    Text.pageup(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.10534]
    [3.10552]
    Text.pageup(State.margin_left, App.screen.width-State.margin_right)
  • replacement in text.lua at line 337
    [3.10588][3.65398:65541]()
    if Editor_state.selection1.line == nil then
    Editor_state.selection1 = {line=Editor_state.cursor1.line, pos=Editor_state.cursor1.pos}
    [3.10588]
    [3.10679]
    if State.selection1.line == nil then
    State.selection1 = {line=State.cursor1.line, pos=State.cursor1.pos}
  • replacement in text.lua at line 340
    [3.10687][3.65542:65630]()
    Text.pagedown(Editor_state.margin_left, App.screen.width-Editor_state.margin_right)
    [3.10687]
    [3.182]
    Text.pagedown(State.margin_left, App.screen.width-State.margin_right)
  • replacement in edit.lua at line 437
    [2.9592][3.15957:15990](),[3.105937][3.15957:15990](),[3.15957][3.15957:15990]()
    Text.keychord_pressed(chord)
    [2.9592]
    [3.15990]
    Text.keychord_pressed(State, chord)