36
36
-- initial view, doesn't work
38
38
love.errhand = function (message)
39
if debugger._handleCrash then debugger._handleCrash(message) end
39
if debugger._crashed then
40
debugger._originalErrhand(message)
44
if the.console and the.keys then
45
debugger._crashed = true
46
print(string.rep('=', 40))
47
print('\nCrash, ' .. message .. '\n')
48
print(debug.traceback())
49
print('\n' .. string.rep('=', 40) .. '\n')
53
-- enter a mini event loop, just updating the
62
for e, a, b, c, d in love.event.poll() do
64
if not love.quit or not love.quit() then return end
67
love.handlers[e](a, b, c, d)
73
elapsed = love.timer.getDelta()
76
the.keys:startFrame(elapsed)
77
the.console:startFrame(elapsed)
78
the.keys:update(elapsed)
79
the.console:update(elapsed)
80
the.keys:endFrame(elapsed)
81
the.console:endFrame(elapsed)
83
if the.keys:pressed('escape') then
84
if not love.quit or not love.quit() then return end
94
if love.timer then love.timer.sleep(0.02) end
95
if love.graphics then love.graphics.present() end
98
debugger._originalErrhand(message)
46
106
setmetatable(_G, {
47
107
__index = function (table, key)
48
108
local info = debug.getinfo(2, 'Sl')
49
local print = debugger.unsourcedPrint or print
50
109
print('Warning: accessing undefined global ' .. key .. ', ' ..
51
110
info.short_src .. ' line ' .. info.currentline)
81
140
require 'zoetrope.ui.cursor'
82
141
require 'zoetrope.ui.textinput'
143
require 'zoetrope.utils.debug'
84
144
require 'zoetrope.utils.factory'
85
145
require 'zoetrope.utils.recorder'
86
146
require 'zoetrope.utils.storage'
87
147
require 'zoetrope.utils.subview'
90
require 'zoetrope.debug.instrument'
91
require 'zoetrope.debug.console'
92
require 'zoetrope.debug.locals'
93
require 'zoetrope.debug.performance'
94
require 'zoetrope.debug.shortcuts'
95
require 'zoetrope.debug.stack'
96
require 'zoetrope.debug.stepper'
97
require 'zoetrope.debug.watch'
98
require 'zoetrope.debug.debugger'
101
149
-- simple load function to bootstrap the app if love.load() hasn't already been defined;
102
150
-- defining it again after this works fine as well