57OGXVHZ44WNWVKNCMPJT7SAOF4MR4GXJ4ZQKHUFAKLZBB6ERDLAC VEGH5443JSRQNVSZXNP6A2F6A2Y3HBAGKGIKU6D2BCT2VDTPWH6AC NYMFNQDTVCO5MFMS434OEIXWT46ETXK5VNDK7DW62BHHOCZNYQ7QC EUBREN3IULKNQSNAIPPKLYHJKYSMVE5W2BMVD376WELJ4NSPXZMAC KKMFQDR43ZWVCDRHQLWWX3FCWCFA3ZSXYOBRJNPHUQZR2XPKWULAC R6GUSTBY5ZHR7E46DSIDQDNZDJI6QMZQDC7RPQMQWLGWQKXU6HVQC ZLEPKWDJAKYNSLOAI3IS3H4SERERCZZJ5ZSDIYFCU6Y7J3F4FSXAC OTIBCAUJ3KDQJLVDN3A536DLZGNRYMGJLORZVR3WLCGXGO6UGO6AC XNHZZH6BY52OY6GLRSAEP34KNHNKZEDIQU4BGEAG5CERRCKFVK5QC CV6XLZMWAIGTLFULCLHD3BOET44JVC4UV4FJUXI2ZYF5WPJNX6LAC UVIDOW6Z52LKD2NL2TBK2QONFTGRSV3WFGNZSUX7LCFFGN5S6I6AC MSDHRXWUFZFE6DZTRMJLLCKZYW4RDMNYK367X5NFKKNP55EJJ7VAC WQOSZSUESLH4YRMW3PIWGSEC7RS243324PBROJP2KPRFJ3NFSEZQC 5MR22SGZE5YDU5CAIY53GNJDA6HSWBPYPD6M3FRQ5ZUMCSKTYJRAC CNCYMM6ABOXCRI2IP5A4T2OGBO5FQ7GWBXBP2OQYL4YET5BLJCGQC YGCT2D2ORMLTBHANLGHZV3EBGGHD7ZK55UAM7HF2AVSHDXAAKK5QC AJB4LFRBMIRBEDWJ3OW7GQIMD2BZBVQ62GH4TE2FISWZKSAHRF4QC Z4KNS42NJZTQKUQZ7B5NYU2U4VOCUQCBFT2D7423MAXKF7NQ5ZJAC AVTNUQYRBW7IX2YQ3KDLVQ23RGW3BAKTAE7P73ASBYNKOHMQMH5AC LF7BWEG4DKQI7NMXMZC4LC2BE5PB42HK5PD6OYBNIDMAZBJASOKQC KVHUFUFVOSY6GB4XI2QK4T4WCLIYOV3NZR67TX6AQHAQDWJMEOBQC S7ZZA3YEKYGLBN6UC2N7WGUS43L6MX2KQQ2LBUZT4FQ7K7V5IQGQC YT5P6TO64XSMCZGTT4SVNFOWUN5ECNXTWCMFXN3YCDZUNH4H3IFAC 2Y7YH7UPQWDNYDJN4BYY2MOHA36B2BIRX6DMIAKHJPQC7UP2R6NQC 3WNNXA6UXEX5GXO7UK3HR6GHJMKWZDRD246AEAI5F6IHOCGKDHYQC BJ5X5O4ACBBJ56LRBBSTCW6IBQP4HAEOOOPNH3SKTA4F66YTOIDAC VSBSWTE4IVQDRXLPQ7VTDIIEBEF7GMGRBHZ2IA73ZR6B2KZWI5JAC if #arg > 0 thenEditor_state.filename = arg[1]load_from_disk(Editor_state)Text.redraw_all(Editor_state)Editor_state.screen_top1 = {line=1, pos=1}Editor_state.cursor1 = {line=1, pos=1}edit.fixup_cursor(Editor_state)elseload_from_disk(Editor_state)Text.redraw_all(Editor_state)if Editor_state.cursor1.line > #Editor_state.lines or Editor_state.lines[Editor_state.cursor1.line].mode ~= 'text' thenedit.fixup_cursor(Editor_state)endendlove.window.setTitle('lines.love - '..Editor_state.filename)
assert(#arg == 0)Editor_state.file_path = os.date('%Y/%m/%d/%H-%M-%S')Editor_state.filename = Editor_state.directory..Editor_state.file_pathText.redraw_all(Editor_state)os.execute('mkdir -p '..dirname(Editor_state.filename))assert(not file_exists(Editor_state.filename))
function run.filedropped(file)-- first make sure to save edits on any existing fileif Editor_state.next_save thensave_to_disk(Editor_state)end-- clear the slate for the new fileApp.initialize_globals()Editor_state.filename = file:getFilename()file:open('r')Editor_state.lines = load_from_file(file)file:close()Text.redraw_all(Editor_state)edit.fixup_cursor(Editor_state)love.window.setTitle('lines.love - '..Editor_state.filename)end
assert(#arg == 0)Editor_state.file_path = os.date('%Y/%m/%d/%H-%M-%S')Editor_state.filename = Editor_state.directory..Editor_state.file_pathText.redraw_all(Editor_state)os.execute('mkdir -p '..dirname(Editor_state.filename))assert(not file_exists(Editor_state.filename))
if Current_app == nil thenCurrent_app = 'run'end
if Current_app == 'run' thenload_file_from_source_or_save_directory('file.lua')load_file_from_source_or_save_directory('run.lua')load_file_from_source_or_save_directory('edit.lua')load_file_from_source_or_save_directory('text.lua')load_file_from_source_or_save_directory('search.lua')load_file_from_source_or_save_directory('select.lua')load_file_from_source_or_save_directory('undo.lua')load_file_from_source_or_save_directory('icons.lua')load_file_from_source_or_save_directory('text_tests.lua')load_file_from_source_or_save_directory('run_tests.lua')load_file_from_source_or_save_directory('drawing.lua')load_file_from_source_or_save_directory('geom.lua')load_file_from_source_or_save_directory('help.lua')load_file_from_source_or_save_directory('drawing_tests.lua')elseload_file_from_source_or_save_directory('source_file.lua')load_file_from_source_or_save_directory('source.lua')load_file_from_source_or_save_directory('commands.lua')load_file_from_source_or_save_directory('source_edit.lua')load_file_from_source_or_save_directory('log_browser.lua')load_file_from_source_or_save_directory('source_text.lua')load_file_from_source_or_save_directory('search.lua')load_file_from_source_or_save_directory('select.lua')load_file_from_source_or_save_directory('source_undo.lua')load_file_from_source_or_save_directory('colorize.lua')load_file_from_source_or_save_directory('source_text_tests.lua')load_file_from_source_or_save_directory('source_tests.lua')end
function App.focus(in_focus)if in_focus thenLast_focus_time = App.getTime()endif Current_app == 'run' thenif run.focus then run.focus(in_focus) endelseif Current_app == 'source' thenif source.focus then source.focus(in_focus) endelseassert(false, 'unknown app "'..Current_app..'"')endend
function App.keychord_pressed(chord, key)-- ignore events for some time after window in focus (mostly alt-tab)if App.getTime() < Last_focus_time + 0.01 thenreturnend--if chord == 'C-e' then-- carefully save settingsif Current_app == 'run' thenlocal source_settings = Settings.sourceSettings = run.settings()Settings.source = source_settingsif run.quit then run.quit() endCurrent_app = 'source'elseif Current_app == 'source' thenSettings.source = source.settings()if source.quit then source.quit() endCurrent_app = 'run'elseassert(false, 'unknown app "'..Current_app..'"')endSettings.current_app = Current_applove.filesystem.write('config', json.encode(Settings))-- rebootload_file_from_source_or_save_directory('main.lua')App.undo_initialize()App.run_tests_and_initialize()returnif Current_app == 'run' thenif run.keychord_pressed then run.keychord_pressed(chord, key) endelseif Current_app == 'source' thenif source.keychord_pressed then source.keychord_pressed(chord, key) endelseassert(false, 'unknown app "'..Current_app..'"')
function App.focus(in_focus)if in_focus thenLast_focus_time = App.getTime()if Current_app == 'run' thenif run.focus then run.focus(in_focus) endelseif Current_app == 'source' thenif source.focus then source.focus(in_focus) endelseassert(false, 'unknown app "'..Current_app..'"')endif Current_app == nil thenCurrent_app = 'run'