~akkartik/techmeet-capture.love

7c1a6869ed729af58fd1e208821b19a9bc97087c — Kartik K. Agaram 4 months ago 90bd535 + 4e9298d
Merge lines.love
4 files changed, 14 insertions(+), 14 deletions(-)

M source_text.lua
M source_text_tests.lua
M text.lua
M text_tests.lua
M source_text.lua => source_text.lua +1 -1
@@ 798,7 798,7 @@ function Text.to_pos_on_line(State, line_index, mx, my)
      -- (The final screen line positions past end of screen line as always.)
      if screen_line_index < #line_cache.screen_line_starting_pos and mx > State.left + Text.screen_line_width(State, line_index, screen_line_index) then
--?         print('past end of non-final line; return')
        return line_cache.screen_line_starting_pos[screen_line_index+1]-1
        return line_cache.screen_line_starting_pos[screen_line_index+1]
      end
      local s = string.sub(line.data, screen_line_starting_byte_offset)
--?       print('return', mx, Text.nearest_cursor_pos(State.font, s, mx, State.left), '=>', screen_line_starting_pos + Text.nearest_cursor_pos(State.font, s, mx, State.left) - 1)

M source_text_tests.lua => source_text_tests.lua +6 -6
@@ 485,9 485,9 @@ function test_click_past_end_of_screen_line()
  y = y + Editor_state.line_height
  -- click past end of second screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
  check_eq(Editor_state.cursor1.pos, 12, 'cursor:pos')
  check_eq(Editor_state.cursor1.pos, 13, 'cursor:pos')
end

function test_click_on_wrapping_line_rendered_from_partway_at_top_of_screen()


@@ 506,9 506,9 @@ function test_click_on_wrapping_line_rendered_from_partway_at_top_of_screen()
  y = y + Editor_state.line_height
  -- click past end of second screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
  check_eq(Editor_state.cursor1.pos, 12, 'cursor:pos')
  check_eq(Editor_state.cursor1.pos, 13, 'cursor:pos')
end

function test_click_past_end_of_wrapping_line()


@@ 576,8 576,8 @@ function test_click_past_end_of_word_wrapping_line()
  y = y + Editor_state.line_height
  -- click past the end of the screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  check_eq(Editor_state.cursor1.pos, 20, 'cursor')
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.pos, 21, 'cursor')
end

function test_select_text()

M text.lua => text.lua +1 -1
@@ 736,7 736,7 @@ function Text.to_pos_on_line(State, line_index, mx, my)
      -- (The final screen line positions past end of screen line as always.)
      if screen_line_index < #line_cache.screen_line_starting_pos and mx > State.left + Text.screen_line_width(State, line_index, screen_line_index) then
--?         print('past end of non-final line; return')
        return line_cache.screen_line_starting_pos[screen_line_index+1]-1
        return line_cache.screen_line_starting_pos[screen_line_index+1]
      end
      local s = string.sub(line.data, screen_line_starting_byte_offset)
--?       print('return', mx, Text.nearest_cursor_pos(State.font, s, mx, State.left), '=>', screen_line_starting_pos + Text.nearest_cursor_pos(State.font, s, mx, State.left) - 1)

M text_tests.lua => text_tests.lua +6 -6
@@ 485,9 485,9 @@ function test_click_past_end_of_screen_line()
  y = y + Editor_state.line_height
  -- click past end of second screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
  check_eq(Editor_state.cursor1.pos, 12, 'cursor:pos')
  check_eq(Editor_state.cursor1.pos, 13, 'cursor:pos')
end

function test_click_on_wrapping_line_rendered_from_partway_at_top_of_screen()


@@ 506,9 506,9 @@ function test_click_on_wrapping_line_rendered_from_partway_at_top_of_screen()
  y = y + Editor_state.line_height
  -- click past end of second screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
  check_eq(Editor_state.cursor1.pos, 12, 'cursor:pos')
  check_eq(Editor_state.cursor1.pos, 13, 'cursor:pos')
end

function test_click_past_end_of_wrapping_line()


@@ 576,8 576,8 @@ function test_click_past_end_of_word_wrapping_line()
  y = y + Editor_state.line_height
  -- click past the end of the screen line
  edit.run_after_mouse_click(Editor_state, App.screen.width-2,y-2, 1)
  -- cursor moves to end of screen line
  check_eq(Editor_state.cursor1.pos, 20, 'cursor')
  -- cursor moves to end of screen line (one more than final character shown)
  check_eq(Editor_state.cursor1.pos, 21, 'cursor')
end

function test_select_text()