Commit Graph

637 Commits

Author SHA1 Message Date
Kartik K. Agaram ba48aadaa7 bugfix: backspace from start of final line 2022-08-10 22:38:10 -07:00
Kartik K. Agaram 8cfffdef41 unnecessary args 2022-08-10 22:29:39 -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 65879591ca bugfix: imprecision in drawing
scenario:
  slowly press down mouse button and drag to draw a line
  release mouse button

Before this commit the point would jump just a little bit on release,
and points would go slightly to the left of where I expect.

Yet another thing it's hard to write an automated test for.
2022-08-03 18:40:07 -07:00
Kartik K. Agaram f72185ab19 round one coordinate 2022-07-30 07:13:45 -07:00
Kartik K. Agaram 9d80e92415 round coordinates to integers in a few places
Thanks Lion Kimbro for pointing out this issue.

I still have to use floats for start/end angles of arcs. That might be a
sign that I don't have the right serialization yet for them. Or that
that feature needs to go.

I started out with a hazy idea of only using 8-bit ints for coordinates,
but now I'm not sure how committed I am to that constraint. While the
width is always 256 units, it might be nice to create long portrait
drawings at some point, whose height is greater than 256 units.
2022-07-29 21:54:06 -07:00
Kartik K. Agaram 0218980add click to the left of a line 2022-07-29 14:38:45 -07:00
Kartik K. Agaram 1e6b9e25aa copying to clipboard can never scroll 2022-07-27 20:51:18 -07:00
Kartik K. Agaram 4ce716fe44 line.y -> line_cache.starty in a few more places
Disquieting that none of my tests caught these. On the other hand, I
also haven't noticed any issues in practice. Perhaps cache invalidation
is often unnecessary.
2022-07-27 20:45:46 -07:00
Kartik K. Agaram 48162b9816 have file API operate on state object 2022-07-25 19:56:39 -07:00
Kartik K. Agaram e26470aada update cursor in search box 2022-07-25 18:17:04 -07:00
Kartik K. Agaram 94b6d04e83 bugfix: alt-tab shouldn't emit keypress events
Looks like this only happens on Linux:
  https://love2d.org/forums/viewtopic.php?p=249700
2022-07-25 15:33:06 -07:00
Kartik K. Agaram 6c6a7aab07 move 2022-07-25 15:25:22 -07:00
Kartik K. Agaram fe8e4fd9da simplify hysteresis logic 2022-07-25 15:23:01 -07:00
Kartik K. Agaram 3265abacb4 bugfix: skip over drawings when searching 2022-07-25 09:49:26 -07:00
Kartik K. Agaram 6f74f95a46 extract method 2022-07-23 23:36:04 -07:00
Kartik K. Agaram b7a67ab1e9 bugfix: online help
Broken in the commit before last.
2022-07-22 02:29:23 -07:00
Kartik K. Agaram 0251b3f0c2 bugfix: search
Broken since commit 188bbc73 9 days ago :/ At least we have a test for
it now.
2022-07-21 16:55:05 -07:00
Kartik K. Agaram 1937379da3 move drawing.starty into line cache 2022-07-20 17:08:00 -07:00
Kartik K. Agaram d61b5dfdeb use line cache for drawings as well 2022-07-20 16:34:09 -07:00
Kartik K. Agaram e2734cd572 bugfix: where cursor is drawn
The published version of lines.love was broken for almost an hour. The
cursor would render one position to the right of where it really is. To
fix it, this commit rolls back 26ba6e4e5a. There doesn't seem a good
way to test it.
2022-07-20 09:11:29 -07:00
Kartik K. Agaram 192e16b42f reorg manual tests doc 2022-07-20 08:53:31 -07:00
Kartik K. Agaram 88013000fc . 2022-07-20 07:50:33 -07:00
Kartik K. Agaram 9f4b41d829 exclude left margin from my word-split heuristic
Gratifying how few tests need changing. Recent commits seem on the right
track.
2022-07-20 07:15:46 -07:00
Kartik K. Agaram a472d218f2 allow Text.nearest_pos_less_than to return 0
This eliminates another case of overflowing margins.
2022-07-20 07:08:28 -07:00
Kartik K. Agaram 7dc47edde8 drop an unnecessary level of indent 2022-07-20 07:03:33 -07:00
Kartik K. Agaram 39f71784c9 clean up some prints
(Looking at prints in Text.draw, Text.compute_fragments and
Text.nearest_pos_less_than)
2022-07-20 07:00:39 -07:00
Kartik K. Agaram b5451e4351 move a var closer to its use 2022-07-20 06:56:19 -07:00
Kartik K. Agaram d41301c1b7 more clearly skip prints before screen top 2022-07-20 06:54:03 -07:00
Kartik K. Agaram 26ba6e4e5a unify two similar functions
The cost is just having to tweak a few more brittle tests. I can't
actually perceive any difference in how the cursor moves when I click on
text.
2022-07-19 17:13:16 -07:00
Kartik K. Agaram efd4a8a883 keep text from overflowing right margin
I've been sloppy about this so far, and outside of tests I can't find
any examples where it matters, but it matters in a potential fork where
I'm rendering multiple columns of text.

It's unfortunate that my tests have this level of brittleness. What I'd
really like to assert in many of these changed lines is that the text
stays inside the margins and that more text would overflow margins.
2022-07-19 16:49:08 -07:00
Kartik K. Agaram cc5ab51c53 delete some duplicate initialization 2022-07-19 08:04:21 -07:00
Kartik K. Agaram 8abd986054 clean up a cross-test leakage 2022-07-19 07:50:53 -07:00
Kartik K. Agaram 82cdd9ddd1 bugfix: couple of margin-relative computations 2022-07-17 22:29:37 -07:00
Kartik K. Agaram 29dac6a6ec separate data structure for each line's cache data
I have no idea what the performance implications of this are..
2022-07-17 21:05:01 -07:00
Kartik K. Agaram 64eed74980 keep all text cache writes inside text.lua 2022-07-17 10:06:39 -07:00
Kartik K. Agaram 4ff6de9951 switch to line index in a function
- Text.screen_line_width
2022-07-17 09:37:50 -07:00
Kartik K. Agaram 7e7f5b9256 switch to line index in a function
- Text.compute_fragments
2022-07-17 09:30:50 -07:00
Kartik K. Agaram 860cd49f67 make a function oblivious to line data structure
- Text.screen_line_index
2022-07-17 09:21:57 -07:00
Kartik K. Agaram 2859063d9d switch to line index in a function
- Text.to_pos_on_line
2022-07-17 09:19:53 -07:00
Kartik K. Agaram 6b3ddc816f switch to line index in a function
- Text.populate_screen_line_starting_pos
2022-07-17 09:14:10 -07:00
Kartik K. Agaram 48b7de4fde switch to line index in a function
- Text.in_line
2022-07-17 09:14:10 -07:00
Kartik K. Agaram c0ea369607 drop some extra args 2022-07-17 09:14:10 -07:00
Kartik K. Agaram b95206fd0d drop some redundant args when clearing the cache 2022-07-17 08:18:48 -07:00
Kartik K. Agaram 2fc5bb9a61 fold together two largely similar cases 2022-07-17 08:05:22 -07:00
Kartik K. Agaram 038f06a342 drop some redundant args from Text.draw 2022-07-17 08:00:56 -07:00
Kartik K. Agaram 0ac44f0756 formatting 2022-07-16 19:27:58 -07:00
Kartik K. Agaram f61d4269f5 bring back a set of constants
It's starting to sink in that I don't want hard-coded constants inside
objects.
2022-07-16 08:48:02 -07:00
Kartik K. Agaram c26b377ab3 more decoupling editor tests from App 2022-07-16 08:33:05 -07:00
Kartik K. Agaram a2b654b534 more decoupling editor tests from App 2022-07-16 08:27:11 -07:00