Commit Graph

1320 Commits

Author SHA1 Message Date
Kartik K. Agaram d61ccafaa0 include a brief reference enabling many useful apps 2023-04-09 19:09:31 -07:00
Kartik K. Agaram ffb7793338 Merge text0 2023-04-09 14:16:08 -07:00
Kartik K. Agaram a277d0581d Merge text.love 2023-04-09 14:15:48 -07:00
Kartik K. Agaram 0d913ba8f1 Merge lines.love 2023-04-09 14:14:03 -07:00
Kartik K. Agaram 4b43e9e85d deemphasize the source editor
This repo does not support freewheeling modification. It's a primitive
to enable freewheeling modification in downstream forks.

The source editor is a convenience, but it's a sharp tool and can easily
leave the app in a broken state that requires dropping down to external
tools (editor, file manager) to fix.
2023-04-09 11:12:36 -07:00
Kartik K. Agaram 572d7fcb94 audit all calls to live.eval
Ignoring errors should be extremely rare and well-considered.
2023-04-09 10:40:11 -07:00
Kartik K. Agaram a785257780 manual tests for the protocol with the driver
I need to get more rigorous about the error handling.
2023-04-09 10:34:24 -07:00
Kartik K. Agaram 8096955025 abstraction: roll forward/back 2023-04-09 10:24:23 -07:00
Kartik K. Agaram 6495afad91 Merge text0 2023-04-08 23:00:47 -07:00
Kartik K. Agaram 2700149407 Merge text.love 2023-04-08 22:59:12 -07:00
Kartik K. Agaram b3a3321cd6 Merge lines.love 2023-04-08 22:57:01 -07:00
Kartik K. Agaram 25e7eb99a9 rename a variable 2023-04-08 22:44:13 -07:00
Kartik K. Agaram 6a7c5824c3 bugfix: syntax highlighting in source editor
I missed that comments only get highlighted at start of line.

This seems a bit hacky. But it continues to trade off CPU for reduced
memory footprint.
2023-04-08 22:28:19 -07:00
Kartik K. Agaram f44f3b0a4a Merge text0 2023-04-08 22:03:05 -07:00
Kartik K. Agaram 03e2e2b54d Merge text.love 2023-04-08 22:02:29 -07:00
Kartik K. Agaram 7e242db523 Merge lines.love 2023-04-08 22:01:01 -07:00
Kartik K. Agaram c969fcdd85 enhance bugfix of commit a9aa3436f (Dec 2024)
Scenario:
* start out with some text on screen
* select some text A, delete
* select some more text B, delete
* press C-z twice to restore A and B
* press C-y twice

Before this commit only the first C-y was having an effect (deleting B).
The second was failing to delete A.
2023-04-08 21:55:51 -07:00
Kartik K. Agaram f387c40d95 restart on a remote command from the driver
This should be useful for ensuring that apps work the same after
restart.
2023-04-07 18:18:43 -07:00
Kartik K. Agaram 480d8700e2 clarify something in the docs 2023-04-07 18:17:58 -07:00
Kartik K. Agaram 81624d570f Merge text0 2023-04-03 09:50:27 -07:00
Kartik K. Agaram 542f0f261b Merge text.love 2023-04-03 09:28:46 -07:00
Kartik K. Agaram e406fdae0d Merge lines.love 2023-04-03 09:23:28 -07:00
Kartik K. Agaram 282983d084 switch source side to new screen-line-based render
Also copy over the implementation of links from pensieve.love.
2023-04-03 08:33:07 -07:00
Kartik K. Agaram f3748b9003 bugfix for merge commit 2023-04-02 17:48:11 -07:00
Kartik K. Agaram f78503b971 bugfix for merge commit 2023-04-02 17:47:09 -07:00
Kartik K. Agaram 5b90b50776 stray dead code 2023-04-02 17:27:26 -07:00
Kartik K. Agaram 95342345a8 change cursor bounds check slightly
This doesn't affect this fork directly, but it's a bad idea to assume
the _app_ is always going to be doing just what a particular subsystem
(here, the text editor in edit.lua+text.lua) is doing.
2023-04-02 17:24:02 -07:00
Kartik K. Agaram 384fb2d19c streamline the interface for Text.draw 2023-04-02 17:19:03 -07:00
Kartik K. Agaram 38c5014761 Merge text0 2023-04-02 16:50:08 -07:00
Kartik K. Agaram 247c09846c Merge text.love 2023-04-02 16:46:31 -07:00
Kartik K. Agaram 3547c18db6 Merge lines.love 2023-04-02 09:22:32 -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 af239935ce minor cleanup and a todo for later 2023-04-01 20:40:47 -07:00
Kartik K. Agaram 86517606a1 clean up some final bifold code 2023-04-01 20:39:53 -07:00
Kartik K. Agaram c87e4a3bab start thinking of compute_fragments as a detail
I think all we need to maintain is the populate_screen_line_starting_pos
array. It's easy to render screen lines one by one from it, and we'll
only ever construct one additional screen line at a time.

I'd hoped to delete other calls to Text.populate_screen_line_starting_pos,
but it turns out we need to update it when editing sometimes. Give up on
that for now; it's a no-op if not needed.
2023-04-01 18:12:29 -07:00
Kartik K. Agaram 24a732ebff update documentation on fragments
I see a path to at least maintain a single fragment per screen line. But
can we do better? It even seems unnecessary to maintain two copies of
the data, chopped up into lines and screen lines.
2023-04-01 18:12:29 -07:00
Kartik K. Agaram ed27b8dd85 stop creating a singleton table for every word 2023-04-01 18:12:29 -07:00
Kartik K. Agaram fbc8b85bcf clean up some debug prints
It's starting to become apparent just how little line_cache.fragments
does for me now. Let's see if we can get rid of it entirely.
2023-04-01 18:12:29 -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 0f0879d2da Merge text0 2023-03-30 23:18:02 -07:00
Kartik K. Agaram 4e19e609ba Merge text.love 2023-03-30 23:17:14 -07:00
Kartik K. Agaram 3bdaf97baa Merge lines.love 2023-03-30 23:15:06 -07:00
Kartik K. Agaram fd2e5acb46 . 2023-03-30 23:12:23 -07:00
Kartik K. Agaram 4c601ce9fd Merge lines.love 2023-03-30 23:12:01 -07:00
Kartik K. Agaram 563f22116c obsolete manual test 2023-03-30 23:03:55 -07:00
Kartik K. Agaram 5b2e629622 better formatting 2023-03-28 22:01:51 -07:00
Kartik K. Agaram 9153d96951 Merge text0 2023-03-26 10:01:49 -07:00