~akkartik/luaML.love

aa751541b9137e99f92bb59b66832374f9c7f6c6 — Kartik K. Agaram a month ago c0c2a9a + 0c1acbb
Merge text0
2 files changed, 7 insertions(+), 9 deletions(-)

M edit.lua
M text.lua
M edit.lua => edit.lua +1 -2
@@ 369,9 369,8 @@ function edit.keychord_press(State, chord, key, readonly)
    if Text.cursor_out_of_screen(State) then
      Text.snap_cursor_to_bottom_of_screen(State, State.left, State.right)
    end
    schedule_save(State)
    record_undo_event(State, {before=before, after=snapshot(State, before_line, State.cursor1.line)})
  -- dispatch to text
    schedule_save(State)
  else
    Text.keychord_press(State, chord, readonly)
  end

M text.lua => text.lua +6 -7
@@ 141,7 141,7 @@ function Text.text_input(State, t)
  if App.mouse_down(1) then return end
  if App.any_modifier_down() then
    if App.key_down(t) then
      -- The modifiers didn't change the key. Handle it in keychord_pressed.
      -- The modifiers didn't change the key. Handle it in keychord_press.
      return
    else
      -- Key mutated by the keyboard layout. Continue below.


@@ 168,17 168,16 @@ end
function Text.keychord_press(State, chord, readonly)
--?   print('chord', chord, State.selection1.line, State.selection1.pos)
  if not readonly then
  --== shortcuts that mutate text
  --== shortcuts that mutate text (must schedule_save)
  if chord == 'return' then
    local before_line = State.cursor1.line
    local before = snapshot(State, before_line)
    Text.insert_return(State)
    State.selection1 = {}
    if State.cursor_y > App.screen.height - State.line_height then
      Text.snap_cursor_to_bottom_of_screen(State, State.left, State.right)
    end
    schedule_save(State)
    record_undo_event(State, {before=before, after=snapshot(State, before_line, State.cursor1.line)})
    schedule_save(State)
  elseif chord == 'tab' then
    local before = snapshot(State, State.cursor1.line)
--?     print(State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos)


@@ 188,8 187,8 @@ function Text.keychord_press(State, chord, readonly)
      Text.snap_cursor_to_bottom_of_screen(State, State.left, State.right)
--?       print('=>', State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos)
    end
    schedule_save(State)
    record_undo_event(State, {before=before, after=snapshot(State, State.cursor1.line)})
    schedule_save(State)
  elseif chord == 'backspace' then
    if State.selection1.line then
      Text.delete_selection(State, State.left, State.right)


@@ 231,8 230,8 @@ function Text.keychord_press(State, chord, readonly)
    end
    Text.clear_screen_line_cache(State, State.cursor1.line)
    assert(Text.le1(State.screen_top1, State.cursor1), ('screen_top (line=%d,pos=%d) is below cursor (line=%d,pos=%d)'):format(State.screen_top1.line, State.screen_top1.pos, State.cursor1.line, State.cursor1.pos))
    schedule_save(State)
    record_undo_event(State, {before=before, after=snapshot(State, State.cursor1.line)})
    schedule_save(State)
  elseif chord == 'delete' then
    if State.selection1.line then
      Text.delete_selection(State, State.left, State.right)


@@ 263,8 262,8 @@ function Text.keychord_press(State, chord, readonly)
      table.remove(State.line_cache, State.cursor1.line+1)
    end
    Text.clear_screen_line_cache(State, State.cursor1.line)
    schedule_save(State)
    record_undo_event(State, {before=before, after=snapshot(State, State.cursor1.line)})
    schedule_save(State)
  end
  end
  --== shortcuts that move the cursor