Merge lines.love
This commit is contained in:
commit
b84cbf6d21
1
app.lua
1
app.lua
|
@ -8,6 +8,7 @@
|
|||
-- and a source editor, while giving each the illusion of complete
|
||||
-- control.
|
||||
function love.run()
|
||||
App.version_check()
|
||||
App.snapshot_love()
|
||||
-- Tests always run at the start.
|
||||
App.run_tests_and_initialize()
|
||||
|
|
36
main.lua
36
main.lua
|
@ -69,6 +69,23 @@ function App.load()
|
|||
end
|
||||
end
|
||||
|
||||
function App.version_check()
|
||||
-- available modes: run, error
|
||||
Error_message = nil
|
||||
Error_count = 0
|
||||
-- we'll reuse error mode on load for an initial version check
|
||||
local supported_versions = {'11.4', '12.0'} -- put the recommended version first
|
||||
local minor_version
|
||||
Major_version, minor_version = love.getVersion()
|
||||
Version = Major_version..'.'..minor_version
|
||||
if array.find(supported_versions, Version) == nil then
|
||||
Current_app = 'error'
|
||||
Error_message = ("This app doesn't support version %s; please use version %s. Press any key to try it with this version anyway."):format(Version, supported_versions[1])
|
||||
print(Error_message)
|
||||
-- continue initializing everything; hopefully we won't have errors during initialization
|
||||
end
|
||||
end
|
||||
|
||||
function App.initialize_globals()
|
||||
if Current_app == 'run' then
|
||||
run.initialize_globals()
|
||||
|
@ -134,7 +151,12 @@ function App.focus(in_focus)
|
|||
end
|
||||
|
||||
function App.draw()
|
||||
if Current_app == 'run' then
|
||||
if Current_app == 'error' then
|
||||
love.graphics.setColor(0,0,1)
|
||||
love.graphics.rectangle('fill', 0,0, App.screen.width, App.screen.height)
|
||||
love.graphics.setColor(1,1,1)
|
||||
love.graphics.printf(Error_message, 40,40, 600)
|
||||
elseif Current_app == 'run' then
|
||||
run.draw()
|
||||
elseif Current_app == 'source' then
|
||||
source.draw()
|
||||
|
@ -165,6 +187,12 @@ function App.keychord_press(chord, key)
|
|||
return
|
||||
end
|
||||
--
|
||||
if Current_app == 'error' then
|
||||
if chord == 'C-c' then
|
||||
love.system.setClipboardText(Error_message)
|
||||
end
|
||||
return
|
||||
end
|
||||
if chord == 'C-e' then
|
||||
-- carefully save settings
|
||||
if Current_app == 'run' then
|
||||
|
@ -200,6 +228,7 @@ function App.keychord_press(chord, key)
|
|||
end
|
||||
|
||||
function App.textinput(t)
|
||||
if Current_app == 'error' then return end
|
||||
-- ignore events for some time after window in focus (mostly alt-tab)
|
||||
if Current_time < Last_focus_time + 0.01 then
|
||||
return
|
||||
|
@ -215,6 +244,7 @@ function App.textinput(t)
|
|||
end
|
||||
|
||||
function App.keyreleased(key, scancode)
|
||||
if Current_app == 'error' then return end
|
||||
-- ignore events for some time after window in focus (mostly alt-tab)
|
||||
if Current_time < Last_focus_time + 0.01 then
|
||||
return
|
||||
|
@ -230,6 +260,7 @@ function App.keyreleased(key, scancode)
|
|||
end
|
||||
|
||||
function App.mousepressed(x,y, mouse_button)
|
||||
if Current_app == 'error' then return end
|
||||
--? print('mouse press', x,y)
|
||||
if Current_app == 'run' then
|
||||
if run.mouse_press then run.mouse_press(x,y, mouse_button) end
|
||||
|
@ -241,6 +272,7 @@ function App.mousepressed(x,y, mouse_button)
|
|||
end
|
||||
|
||||
function App.mousereleased(x,y, mouse_button)
|
||||
if Current_app == 'error' then return end
|
||||
if Current_app == 'run' then
|
||||
if run.mouse_release then run.mouse_release(x,y, mouse_button) end
|
||||
elseif Current_app == 'source' then
|
||||
|
@ -251,6 +283,7 @@ function App.mousereleased(x,y, mouse_button)
|
|||
end
|
||||
|
||||
function App.wheelmoved(dx,dy)
|
||||
if Current_app == 'error' then return end
|
||||
if Current_app == 'run' then
|
||||
if run.mouse_wheel_move then run.mouse_wheel_move(dx,dy) end
|
||||
elseif Current_app == 'source' then
|
||||
|
@ -261,6 +294,7 @@ function App.wheelmoved(dx,dy)
|
|||
end
|
||||
|
||||
function love.quit()
|
||||
if Current_app == 'error' then return end
|
||||
if Current_app == 'run' then
|
||||
local source_settings = Settings.source
|
||||
Settings = run.settings()
|
||||
|
|
|
@ -1086,7 +1086,14 @@ function test_pagedown_can_start_from_middle_of_long_wrapping_line()
|
|||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'jkl ', 'screen:2')
|
||||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'mn', 'screen:3')
|
||||
if Version == '12.0' then
|
||||
-- HACK: Maybe v12.0 uses a different font? Strange that it only causes
|
||||
-- issues in a couple of places.
|
||||
-- We'll need to rethink our tests if issues like this start to multiply.
|
||||
App.screen.check(y, 'mno ', 'screen:3')
|
||||
else
|
||||
App.screen.check(y, 'mn', 'screen:3')
|
||||
end
|
||||
end
|
||||
|
||||
function test_pagedown_never_moves_up()
|
||||
|
@ -1796,10 +1803,10 @@ function test_position_cursor_on_recently_edited_wrapping_line()
|
|||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'stu', 'baseline2/screen:3')
|
||||
-- try to move the cursor earlier in the third screen line by clicking the mouse
|
||||
edit.run_after_mouse_release(Editor_state, Editor_state.left+8,Editor_state.top+Editor_state.line_height*2+5, 1)
|
||||
edit.run_after_mouse_release(Editor_state, Editor_state.left+2,Editor_state.top+Editor_state.line_height*2+5, 1)
|
||||
-- cursor should move
|
||||
check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
|
||||
check_eq(Editor_state.cursor1.pos, 26, 'cursor:pos')
|
||||
check_eq(Editor_state.cursor1.pos, 25, 'cursor:pos')
|
||||
end
|
||||
|
||||
function test_backspace_can_scroll_up()
|
||||
|
|
|
@ -1061,7 +1061,14 @@ function test_pagedown_can_start_from_middle_of_long_wrapping_line()
|
|||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'jkl ', 'screen:2')
|
||||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'mn', 'screen:3')
|
||||
if Version == '12.0' then
|
||||
-- HACK: Maybe v12.0 uses a different font? Strange that it only causes
|
||||
-- issues in a couple of places.
|
||||
-- We'll need to rethink our tests if issues like this start to multiply.
|
||||
App.screen.check(y, 'mno ', 'screen:3')
|
||||
else
|
||||
App.screen.check(y, 'mn', 'screen:3')
|
||||
end
|
||||
end
|
||||
|
||||
function test_pagedown_never_moves_up()
|
||||
|
@ -1699,10 +1706,10 @@ function test_position_cursor_on_recently_edited_wrapping_line()
|
|||
y = y + Editor_state.line_height
|
||||
App.screen.check(y, 'stu', 'baseline2/screen:3')
|
||||
-- try to move the cursor earlier in the third screen line by clicking the mouse
|
||||
edit.run_after_mouse_release(Editor_state, Editor_state.left+8,Editor_state.top+Editor_state.line_height*2+5, 1)
|
||||
edit.run_after_mouse_release(Editor_state, Editor_state.left+2,Editor_state.top+Editor_state.line_height*2+5, 1)
|
||||
-- cursor should move
|
||||
check_eq(Editor_state.cursor1.line, 1, 'cursor:line')
|
||||
check_eq(Editor_state.cursor1.pos, 26, 'cursor:pos')
|
||||
check_eq(Editor_state.cursor1.pos, 25, 'cursor:pos')
|
||||
end
|
||||
|
||||
function test_backspace_can_scroll_up()
|
||||
|
|
Loading…
Reference in New Issue