Merge lines.love
This commit is contained in:
commit
60f3ded88d
|
@ -680,7 +680,7 @@ function Text.upA(State)
|
|||
new_cursor_line = new_cursor_line-1
|
||||
if State.lines[new_cursor_line].mode == 'text' then
|
||||
--? print('found previous text line')
|
||||
State.cursor1 = {line=State.cursor1.line-1, pos=nil}
|
||||
State.cursor1 = {line=new_cursor_line, pos=nil}
|
||||
Text.populate_screen_line_starting_pos(State, State.cursor1.line)
|
||||
-- previous text line found, pick its final screen line
|
||||
--? print('has multiple screen lines')
|
||||
|
@ -719,7 +719,7 @@ function Text.upB(State)
|
|||
while new_cursor_line > 1 do
|
||||
new_cursor_line = new_cursor_line-1
|
||||
if State.lines[new_cursor_line].mode == 'text' then
|
||||
State.cursor1 = {line=State.cursor1.line-1, posB=nil}
|
||||
State.cursor1 = {line=new_cursor_line, posB=nil}
|
||||
Text.populate_screen_line_starting_pos(State, State.cursor1.line)
|
||||
local prev_line_cache = State.line_cache[State.cursor1.line]
|
||||
local prev_screen_line_starting_pos = prev_line_cache.screen_line_starting_pos[#prev_line_cache.screen_line_starting_pos]
|
||||
|
|
|
@ -1025,6 +1025,31 @@ function test_down_arrow_moves_cursor()
|
|||
App.screen.check(y, 'ghi', 'screen:3')
|
||||
end
|
||||
|
||||
function test_down_arrow_skips_drawing()
|
||||
-- some lines of text with a drawing intermixed
|
||||
local drawing_width = 50
|
||||
App.screen.init{width=Editor_state.left+drawing_width, height=100}
|
||||
Editor_state = edit.initialize_test_state()
|
||||
Editor_state.lines = load_array{'abc', -- height 15
|
||||
'```lines', '```', -- height 25
|
||||
'ghi'}
|
||||
Text.redraw_all(Editor_state)
|
||||
Editor_state.cursor1 = {line=1, pos=1}
|
||||
Editor_state.screen_top1 = {line=1, pos=1}
|
||||
Editor_state.screen_bottom1 = {}
|
||||
edit.draw(Editor_state)
|
||||
local y = Editor_state.top
|
||||
App.screen.check(y, 'abc', 'baseline/screen:1')
|
||||
y = y + Editor_state.line_height
|
||||
local drawing_height = Drawing_padding_height + drawing_width/2 -- default
|
||||
y = y + drawing_height
|
||||
App.screen.check(y, 'ghi', 'baseline/screen:3')
|
||||
check(Editor_state.cursor_x, 'baseline/cursor_x')
|
||||
-- after hitting the down arrow the cursor moves down by 2 lines, skipping the drawing
|
||||
edit.run_after_keychord(Editor_state, 'down')
|
||||
check_eq(Editor_state.cursor1.line, 3, 'cursor')
|
||||
end
|
||||
|
||||
function test_down_arrow_scrolls_down_by_one_line()
|
||||
-- display the first three lines with the cursor on the bottom line
|
||||
App.screen.init{width=120, height=60}
|
||||
|
@ -1173,6 +1198,31 @@ function test_up_arrow_moves_cursor()
|
|||
App.screen.check(y, 'ghi', 'screen:3')
|
||||
end
|
||||
|
||||
function test_up_arrow_skips_drawing()
|
||||
-- some lines of text with a drawing intermixed
|
||||
local drawing_width = 50
|
||||
App.screen.init{width=Editor_state.left+drawing_width, height=100}
|
||||
Editor_state = edit.initialize_test_state()
|
||||
Editor_state.lines = load_array{'abc', -- height 15
|
||||
'```lines', '```', -- height 25
|
||||
'ghi'}
|
||||
Text.redraw_all(Editor_state)
|
||||
Editor_state.cursor1 = {line=3, pos=1}
|
||||
Editor_state.screen_top1 = {line=1, pos=1}
|
||||
Editor_state.screen_bottom1 = {}
|
||||
edit.draw(Editor_state)
|
||||
local y = Editor_state.top
|
||||
App.screen.check(y, 'abc', 'baseline/screen:1')
|
||||
y = y + Editor_state.line_height
|
||||
local drawing_height = Drawing_padding_height + drawing_width/2 -- default
|
||||
y = y + drawing_height
|
||||
App.screen.check(y, 'ghi', 'baseline/screen:3')
|
||||
check(Editor_state.cursor_x, 'baseline/cursor_x')
|
||||
-- after hitting the up arrow the cursor moves up by 2 lines, skipping the drawing
|
||||
edit.run_after_keychord(Editor_state, 'up')
|
||||
check_eq(Editor_state.cursor1.line, 1, 'cursor')
|
||||
end
|
||||
|
||||
function test_up_arrow_scrolls_up_by_one_line()
|
||||
-- display the lines 2/3/4 with the cursor on line 2
|
||||
App.screen.init{width=120, height=60}
|
||||
|
|
2
text.lua
2
text.lua
|
@ -410,7 +410,7 @@ function Text.up(State)
|
|||
if State.cursor1.line > 1 then
|
||||
local new_cursor_line = State.cursor1.line-1
|
||||
--? print('found previous text line')
|
||||
State.cursor1.line = new_cursor_line
|
||||
State.cursor1 = {line=new_cursor_line, pos=nil}
|
||||
Text.populate_screen_line_starting_pos(State, State.cursor1.line)
|
||||
-- previous text line found, pick its final screen line
|
||||
--? print('has multiple screen lines')
|
||||
|
|
Loading…
Reference in New Issue