resolve conflicts
Dependencies
- [2]
442XD5KJmerge bugfix - [3]
OD3WUB5Bresolve conflicts - [4]
5UNXE4KMon error, switch to a whole other event loop - [5]
MYEOA76Okeep the version check in one place - [6]
Z2XCPTSMinitialize Error_message with everything else - [7]
2CTN2IEFMerge lines.love - [8]
LRDM35CEapp running again - [9]
QRUFNFPPMerge text0 - [10]
BYG5CEMVsupport for naming points - [11]
QMSYY47GMerge text0 - [12]
LHG2QWSOresolve conflicts - [13]
MX7YD2WCresolve conflicts - [14]
6VJTQKW7start supporting LÖVE v12 - [15]
2L5MEZV3experiment: new edit namespace - [16]
5FW7YOFThighlight selection while dragging - [17]
OLX2RRDIMerge text0 - [18]
VMV4LBR4resolve conflicts - [19]
YONFBSVBdon't hide errors when driver.love connects - [20]
TXDMRA5Jbugfix: alt-tab shouldn't emit keypress events - [21]
YT5P6TO6bugfix: save previous file when dropping a new one on - [22]
PP2IIHL6stop putting button state in a global - [23]
2RWR3GM4another missed rename - [24]
LNUHQOGHstart passing in Editor_state explicitly - [25]
F2P336NOresolve conflicts - [26]
KVHUFUFVreorg - [27]
IM6GSGVZfix some arg names - [28]
45BU7IRVremove a local - [29]
PJ5PQAQErecord support for multiple versions - [30]
RHARLLIQMerge text0 - [31]
AVLAYODPmuch simpler - [32]
ZNLTRNNKhighlight another global - [33]
OTIBCAUJlove2d scaffold - [34]
JCSLDGAHbeginnings of support for multiple shapes - [35]
AVTNUQYRbasic test-enabled framework - [36]
7SICLTEDcheck for 'error' mode in a few more places - [37]
KKMFQDR4editing source code from within the app - [38]
WZZGVKSGa few more renames - [39]
UH4YWHW5button framework is at the app level - [40]
ORKN6EOBMerge lines.love - [41]
XJEVMWTSremove a no-op regex munging on callstacks - [42]
36Z442IVback to commit 8123959e52f without code editing - [43]
ULKNZUZKresolve conflicts - [44]
5WHW3IDOfix initialization errors using driver.love - [45]
4LSZFSOQresolve conflicts - [46]
3QQZ7W4Ebring couple more globals back to the app level - [47]
AFDLKNAPresolve conflicts - [48]
JZTUZQ35resolve conflicts - [49]
Z4XRNDTRfind text - [50]
JOPVPUSAediting source code from within the app - [51]
6HDECB5Yfix a regression 2 commits ago - [52]
BSDXVB3Hbackport some doc updates and renames - [53]
6VXO3ZL3just keep the cursor visible after any input events - [54]
3XQROLSKredo version checks yet again - [55]
VPRGENLAhide some details within the 'warning' state - [56]
JYAEYMKZget rid of a special case - [57]
XGHCLIKBMerge lines.love - [58]
ZM6AON3Aresolve conflicts - [59]
FJIGUGECbugfix: version check - [60]
YF2ATH2QMerge lines.love - [61]
T7QIIGQ6attempt at better error recovery - [62]
CYGNFOA5Merge text0 - [63]
TVSDIF6Dresolve conflicts - [64]
TUTDZZOOresolve conflicts - [65]
LXFHXL2NMerge text.love - [66]
BQH7ANWMresolve conflicts - [67]
D2TYFYG2Merge text.love - [68]
TBWAE64Aapp is now live, can communicate with driver - [*]
BJ5X5O4Alet's prevent the text cursor from ever getting on a drawing
Change contents
- edit in main.lua at line 18
-- Available modes: run, errorif Mode == nil then -- might have already been initialized elsewhereMode = 'run'end - edit in main.lua at line 67
Mode = 'error'Error_message = ("This app hasn't been tested with LÖVE version %s; please use version %s if you run into errors. Press a key to try recovering.\n\n%s"):format(Version, Supported_versions[1], Error_message)print(Error_message) - replacement in main.lua at line 69
love.graphics.clear(love.graphics.getBackgroundColor())love.graphics.setColor(1,1,0)love.graphics.rectangle('fill', 30,30, 400,400)love.graphics.setColor(0,0,0)love.graphics.clear(0,0,1)love.graphics.setColor(1,1,1) - edit in main.lua at line 170[6.1373]→[6.531:755](∅→∅),[6.1373]→[6.531:755](∅→∅),[6.755]→[6.655:655](∅→∅),[6.755]→[6.655:655](∅→∅),[6.622]→[6.664:681](∅→∅),[6.655]→[6.664:681](∅→∅),[6.755]→[6.664:681](∅→∅),[6.664]→[6.664:681](∅→∅),[6.622]→[6.664:681](∅→∅),[6.664]→[6.664:681](∅→∅)
if Mode == 'error' thenlove.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)returnend - resurrect zombie in main.lua at line 170
if on.draw then on.draw() end - edit in main.lua at line 180
-- listen for commands in both 'error' and 'run' modes - replacement in main.lua at line 181
if Mode == 'run' thenif on.update then on.update(dt) endendif on.update then on.update(dt) end - edit in main.lua at line 185
if Mode == 'error' then return end - edit in main.lua at line 190
if Mode == 'error' then return end - edit in main.lua at line 199
if Mode == 'error' then return end - edit in main.lua at line 204
if Mode == 'error' then return end - edit in main.lua at line 209
if Mode == 'error' then return end - edit in main.lua at line 223
if Mode == 'error' thenif chord == 'C-c' thenlove.system.setClipboardText(Error_message)endreturnend - edit in main.lua at line 232
if Mode == 'error' then return end - edit in main.lua at line 241
if Mode == 'error' thenif Redo_initialization thenRedo_initialization = nillove.run() -- won't actually replace the event loop;-- we're just running it for its initialization side-effectselseMode = 'run'end - replacement in live.lua at line 82
local possibly_mutated = live.run(buf)if possibly_mutated thenMode = 'run'if Redo_initialization thenRedo_initialization = nillove.run() -- won't actually replace the event loop;-- we're just running it for its initialization side-effectsendendlive.run(buf) - edit in live.lua at line 418
Mode = 'error' - edit in live.lua at line 432
error_frame_keys_down = {} - edit in live.lua at line 434
end-- one iteration of the event loop when showing an error-- return nil to continue the event loop, non-nil to quit-- We don't run this within handle_error because a second error in-- handle_error will crash.function initialization_error_run_frame()if love.event thenlove.event.pump()for name, a,b,c,d,e,f in love.event.poll() doif name == 'quit' thenreturn a or 0elseif name == 'keypressed' thenerror_frame_keys_down[a] = true-- C-cif a == 'c' and (error_frame_keys_down.lctrl or error_frame_keys_down.rctrl) thenlove.system.setClipboardText(Error_message)endelseif name == 'keyreleased' then-- don't try to recover from initialization errorserror_frame_keys_down[a] = nilendendendlocal dt = love.timer.step()Current_time = Current_time + dtif Current_time - Live.previous_read > 0.1 thenlocal buf = live.receive_from_driver()if buf thenlocal maybe_modified = live.run(buf)if maybe_modified then-- retrylocal success = xpcall(function() App.initialize(love.arg.parseGameArguments(arg), arg) end, live.handle_initialization_error)if success thenApp.run_frame = main_run_framereturnendendendLive.previous_read = Current_timeendlove.graphics.origin()love.graphics.clear(0,0,1)love.graphics.setColor(1,1,1)love.graphics.printf(Error_message, 40,40, 600)love.graphics.present()love.timer.sleep(0.001)-- returning nil continues the loop - edit in live.lua at line 489
Redo_initialization = true - edit in live.lua at line 490
App.run_frame = initialization_error_run_frame - replacement in Manual_tests.md at line 13
- create a couple of spuriously failing tests. Run with an untested version of LÖVE. Error message includes message about untested version.- create a failing test. Start app. See test failure. Fix using driver.love- include an error in on.initialize. Start app. See error message. Fix on.initialize using driver.love.