Merge lines.love

This commit is contained in:
Kartik K. Agaram 2024-02-08 02:52:55 -08:00
commit 6b33c9e223
4 changed files with 14 additions and 14 deletions

View File

@ -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)

View File

@ -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()

View File

@ -662,7 +662,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)

View File

@ -459,9 +459,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()
@ -480,9 +480,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()
@ -550,8 +550,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()