Commit Graph

72 Commits

Author SHA1 Message Date
Kartik K. Agaram
f6bc670ef6 yet another bugfix to the version check
We could now get test failures before the version check, which might be
confusing.
2023-12-03 12:30:16 -08:00
Kartik K. Agaram
9993014904 bugfix: version check 2023-12-03 12:11:17 -08:00
Kartik K. Agaram
48c05aa77a late-bind my App.* handlers
This came up when trying to integrate my apps with the vudu debugger
(https://github.com/deltadaedalus/vudu). In general, it's a subtle part
of LÖVE's semantics that you can modify event handlers any time and your
modifications will get picked up. Now my Freewheeling Apps will follow
this norm as well.
2023-11-18 14:15:07 -08:00
Kartik K. Agaram
d90dff3286 improve a name 2023-11-10 10:21:52 -08:00
Kartik K. Agaram
f86ebf6247 clean up a debug print 2023-11-10 10:20:57 -08:00
Kartik K. Agaram
a6738b49c4 clean up some cruft from error callstacks
before:

  stack traceback:
    [string "text.lua"]:9: in function 'draw'
    [string "edit.lua"]:200: in function 'draw'
    [string "run.lua"]:140: in function 'draw'
    [string "main.lua"]:162: in function <[string "main.lua"]:155>
    [C]: in function 'xpcall'
    [string "app.lua"]:38: in function <[string "app.lua"]:20>
    [C]: in function 'xpcall'
    [love "boot.lua"]:370: in function <[love "boot.lua"]:337>

after:

  stack traceback:
    text.lua:9: in function 'draw'
    edit.lua:200: in function 'draw'
    run.lua:140: in function 'draw'
    main.lua:162: in function <[string "main.lua"]:155>
    [C]: in function 'xpcall'
    app.lua:38: in function <[string "app.lua"]:20>
    [C]: in function 'xpcall'
    [love "boot.lua"]:370: in function <[love "boot.lua"]:337>
2023-11-10 08:41:56 -08:00
Kartik K. Agaram
8b70258978 remove a no-op regex munging on callstacks
Port of a fix "upstream": commit b38f172ceb in template-live-editor.
2023-11-10 07:24:46 -08:00
Kartik K. Agaram
aa9a0b0b15 use my name for a dir 2023-10-27 23:58:42 -07:00
Kartik K. Agaram
4b3f359526 clearer API for drawing a button
Make it more obvious that the color passed in is just for the background.
The icon will do the rest.
r/g/b keys are more consistent with App.color().
2023-10-16 22:57:46 -07:00
Kartik K. Agaram
6e391d7875 start supporting LÖVE v12
To do this I need some support for multiple versions. And I need an
'error' mode to go with existing 'run' and 'source' modes
(`Current_app`). Most errors will automatically transition to 'source'
editor mode, but some errors aren't really actionable in the editor. For
those we'll use 'error' mode.

The app doesn't yet work with LÖVE v12. There are some unit tests failing
because of differences in font rendering.
2023-10-09 20:05:19 -07:00
Kartik K. Agaram
790b7f18db yet another bugfix X-(
This time it really does work with pensieve.love
2023-09-09 09:27:56 -07:00
Kartik K. Agaram
0016d668bc two bugfixes
Annoying dangers of testing in one fork and committing upstream
(where it isn't used yet).
2023-09-09 09:09:14 -07:00
Kartik K. Agaram
bcd7f6b598 new primitives for reading/writing files
These are like versions in nativefs, but only support absolute paths.
I want to be thoughtful about the precise location at each call-site.

It's a little ugly that app.lua now has a dependency on file.lua. Or
source_file.lua for the source editor.
2023-09-09 08:56:21 -07:00
Kartik K. Agaram
31266e23f5 reorder 2023-09-09 08:27:27 -07:00
Kartik K. Agaram
87ea2af2da a few more testable file-system operations 2023-09-08 14:03:40 -07:00
Kartik K. Agaram
adfe94b9fc switch to source editor on error
If we're already in source editor we'll quit as before.

It's ugly that app.lua now knows about run.lua. But it's a start.
2023-09-04 13:07:53 -07:00
Kartik K. Agaram
99495355b4 stop using keyboard.isDown
It doesn't work on Android, and it's not much work to avoid.
2023-09-04 00:22:31 -07:00
Kartik K. Agaram
f82c0de502 cleaner API for file-system access
Thanks to physfs and nativefs.lua

nativefs still introduces some inconsistencies with love.filesystem with
relative paths:

  * love.fs.read: reads from save dir if it exists, falls back to source dir if not
  * nativefs.read: reads from save dir if it exists, falls back to source dir if not ✓

  * love.fs.write: always writes to save dir
  * nativefs.write: always writes to source dir (since no restrictions)

  * love.fs.newFile followed by file:open('r'): reads from save dir if it exists, source dir if not
  * nativefs.newFile followed by file:open('r'): always reads from working dir

  * love.fs.newFile followed by file:open('w'): always writes to save dir
  * nativefs.newFile followed by file:open('w'): always writes to working dir

So avoid using relative paths with App primitives.
2023-08-30 19:04:06 -07:00
Kartik K. Agaram
7e97a2a1e7 make a few names consistent with snake_case 2023-08-30 06:44:54 -07:00
Kartik K. Agaram
ca4ad8a9e5 reorganize app.lua and its comments
I was so sure my comments were clear when I wrote this a year ago. They
were shit. So, most probably, is the current iteration. Feedback
appreciated.
2023-08-26 15:15:42 -07:00
Kartik K. Agaram
9e17337217 rename modifier_down to key_down
The old name was confusing, as its description showed.
2023-06-05 22:21:04 -07:00
Kartik K. Agaram
3114176ebd change how we handle clicks above top margin 2023-06-03 10:36:05 -07:00
Kartik K. Agaram
e568378ecb wait, fix tests
We had this problem because our test fakes were out of sync with reality.
And just in the source app.
2023-05-30 00:24:16 -07:00
Kartik K. Agaram
658f96667b primitives for writing tests 2023-04-11 21:33:33 -07:00
Kartik K. Agaram
d61ccafaa0 include a brief reference enabling many useful apps 2023-04-09 19:09:31 -07:00
Kartik K. Agaram
29f1687f3c avoid saving fragments in lines
Now we render lines one screen line at a time rather than one word at a
time.

I can't port the source side just yet; I need to fix hyperlinks first..
2023-04-01 21:44:27 -07:00
Kartik K. Agaram
d0d39797cf show count of test failures 2023-04-01 20:40:47 -07:00
Kartik K. Agaram
f64f680f2b no more Text allocations
Is it just my imagination, or does the app feel lighter and more fluffy?
2023-04-01 18:12:29 -07:00
Kartik K. Agaram
876d6298b4 App.width can no longer take a Text
In the process I discovered the horrible fact that Text.x allocates a new Text.
And it gets called (just once, thank goodness) on every single frame.
2023-04-01 18:12:29 -07:00
Kartik K. Agaram
4ab901c92e get rid of to_text
I've been misunderstanding what Text objects are. They can render a lot
of text with a given line height, word wrap, colors in various places.
And I've been creating one for every word 🤦

Unwinding this will take some time. This is just a first baby step for
ad hoc text objects. Turns out I don't need to convert to Text to get
something's rendered width, just the Font can do that.

Thanks to the LÖVE Discord for educating me:
  https://discord.com/channels/329400828920070144/330089431379869708/1091535487333826580
2023-04-01 16:12:55 -07:00
Kartik K. Agaram
eae5c9505c bugfix: naming points 2023-03-26 09:36:41 -07:00
Kartik K. Agaram
5cd5f54355 remove a condition 2023-01-22 22:12:58 -08:00
Kartik K. Agaram
d13d0f9af0 clean up a print 2023-01-20 21:55:52 -08:00
Kartik K. Agaram
2a0a770c49 deduce test names on failures 2023-01-20 21:48:49 -08:00
Kartik K. Agaram
a28e57205d link to default love.run for comparison 2023-01-20 21:07:59 -08:00
Kartik K. Agaram
2b3e09ca0f make love event names consistent
I want the words to be easy to read, and to use a consistent tense.
update and focus seem more timeless; let's make everything like those.
2022-12-23 18:52:28 -08:00
Kartik K. Agaram
60e1023f0b undo an ancient hack; be an idiomatic LÖVE app 2022-11-27 13:10:23 -08:00
Kartik K. Agaram
89b30a62ef support mouse clicks in file navigator 2022-09-18 01:26:20 -07:00
Kartik K. Agaram
287050d598 get rid of ugly side-effects in tests 2022-09-17 10:47:47 -07:00
Kartik K. Agaram
fdb35ce12b bugfix: save modified files in save directory
scenario: open app from .love file, press ctrl+e

Before this change the source file showed up empty.
2022-09-05 12:39:28 -07:00
Kartik K. Agaram
e1c5a42f31 editing source code from within the app
integrated from pong.love via text.love:
  https://merveilles.town/@akkartik/108933336531898243
2022-09-03 14:13:22 -07:00
Kartik K. Agaram
019a829279 make App.open_for_* look more like io.open
Now missing files will result in similar behavior: nil file handles.
2022-08-23 13:12:24 -07:00
Kartik K. Agaram
cfdac28e18 distinguish consistently between mouse buttons and other buttons 2022-08-23 09:36:08 -07:00
Kartik K. Agaram
fc9490c964 reclaim a couple more functions after tests 2022-08-19 10:29:48 -07:00
Kartik K. Agaram
6a6ff18916 hardcode some assumptions about how this app uses love 2022-08-06 09:51:32 -07:00
Kartik K. Agaram
0ac44f0756 formatting 2022-07-16 19:27:58 -07:00
Kartik K. Agaram
e4f9d50a55 a more radical attempt at ignoring nil y's 2022-07-13 09:31:54 -07:00
Kartik K. Agaram
75ec5c9087 . 2022-07-12 22:13:06 -07:00
Kartik K. Agaram
3850fbac35 make colors easier to edit 2022-07-11 23:18:26 -07:00
Kartik K. Agaram
3be413602a bugfix: typing should delete highlighted text
The test harness now also mimics real usage more precisely.
2022-06-20 10:48:35 -07:00