Commit Graph

1145 Commits

Author SHA1 Message Date
Kartik K. Agaram f49e2fd104 typos 2022-05-25 17:07:06 -07:00
Kartik K. Agaram d1f893a98e M-left/M-right for word-based motions 2022-05-25 15:47:11 -07:00
Kartik K. Agaram 9892bc5d7c extract couple of functions 2022-05-25 15:25:10 -07:00
Kartik K. Agaram cb943b9aeb couple of renames 2022-05-25 15:20:18 -07:00
Kartik K. Agaram 1fa295e599 keep repeated cursor up/down motions from drifting left 2022-05-25 15:08:53 -07:00
Kartik K. Agaram 815c4f010a assert for a bug I saw a while ago but can no longer reproduce
I saw screen_top not at start of screen line, but at cursor location in
middle of line.
2022-05-25 15:00:13 -07:00
Kartik K. Agaram 34950353b9 bugfix: don't append metadata when it already exists 2022-05-25 14:56:21 -07:00
Kartik K. Agaram fd213e6f49 bugfix
I spent 20 minutes converting a manual test to a reproducible automated
one, but in the process I knew exactly what the problem was. Nice.
2022-05-25 14:31:16 -07:00
Kartik K. Agaram c2eee640cf test and App helper for mouse clicks 2022-05-25 13:38:33 -07:00
Kartik K. Agaram 442133fe7f no, make sure to compute line width after screen dimensions 2022-05-25 13:35:32 -07:00
Kartik K. Agaram fa103ca2e8 couple more tests
Along with the App helpers needed for them.
2022-05-25 12:59:12 -07:00
Kartik K. Agaram 2999605530 bugfix: down arrow doesn't scroll up unnecessarily
up arrow doesn't seem to have the symmetric issue.
2022-05-24 15:03:06 -07:00
Kartik K. Agaram 84973b09e3 bugfix
Found while reading https://www.gutenberg.org/ebooks/52091
2022-05-24 14:34:58 -07:00
Kartik K. Agaram e581a2b7d1 get rid of debug variables 2022-05-23 23:00:07 -07:00
Kartik K. Agaram 8d5ac5da75 keep one screen line of overlap on pagedown
I'm now extracting the concern of computing
line.screen_line_starting_pos out of Text.draw. Earlier
I had to make sure I ran through the whole line to compute
screen_line_starting_pos, but that had the side-effect of updating
Screen_bottom1.pos as well with lines that had never been rendered.

In this process I hit my first bug due to an accidental global. It
doesn't show up in the patch because I accidentally deleted a local
declaration. (I thought I didn't need screen_line_starting_pos anymore,
deleted everywhere, then brought it back everywhere from the bottom of
the function up, but forgot to put back the very first occurrence.)

The amount of yoyoing this caused between App.draw and Text.draw, I very
much have spaghetti on my hands.

Accidental globals are _terrible_ in a program with tests. Cross test
contamination X-(
2022-05-23 22:51:52 -07:00
Kartik K. Agaram b3251b23b5 a few tests for pageup, and a bugfix
It wasn't screen-line aware. Now it is.
2022-05-23 20:57:56 -07:00
Kartik K. Agaram 6b093fe3b4 clean up test progress indicators 2022-05-23 17:40:44 -07:00
Kartik K. Agaram a35b130f08 one bug I've repeatedly run into while testing with Moby Dick
https://www.hogbaysoftware.com/posts/moby-dick-workout
2022-05-23 17:39:00 -07:00
Kartik K. Agaram 288d8426f1 scrolling with up arrow 2022-05-23 16:36:26 -07:00
Kartik K. Agaram 6b10c94dd5 disable all debug prints 2022-05-23 15:38:42 -07:00
Kartik K. Agaram 8b5fdffd7d quite the frustrating bugfix 2022-05-23 15:34:05 -07:00
Kartik K. Agaram c9434e4f17 snapshot
Why the fuck is this so fucking hard?
2022-05-23 15:22:16 -07:00
Kartik K. Agaram 254ae7ad99 . 2022-05-23 13:18:34 -07:00
Kartik K. Agaram 4490c5034f similar tests for cursor up 2022-05-23 11:02:37 -07:00
Kartik K. Agaram e0b2c2dede couple of tests for cursor down 2022-05-23 10:56:39 -07:00
Kartik K. Agaram 4f6a324975 bugfix: don't rely on Screen_bottom1 while scrolling
Setting up the test just right to test the thing I want to test was a
rube goldberg machine of constants.
2022-05-23 08:52:13 -07:00
Kartik K. Agaram 37f1313b16 first successful pagedown test, first bug found by test
I also really need to rethink how people debug my programs. My approach
of inserting and deleting print() takes a lot of commitment. I need my
old trace-based whitebox testing idea. However, in my past projects I
never did figure out a good framework for tweaking how verbose a trace
to emit.

Perhaps that's too many knobs. Perhaps we just need a way to run a
single test with the most verbose trace possible. Then it's just a
matter of having the trace tell a coherent story? But even if the trace
stays out of program output in that situation, it's still in the
programmer's face in the _code_. Ugh.

Current plan: ship program with maximum tests and zero commented-out
prints. If you want to debug, insert prints. This is better than
previous, text-mode, projects just by virtue of the stdout channel being
dedicated to debug stuff.
2022-05-23 08:17:40 -07:00
Kartik K. Agaram 46d4c4de10 first test! 2022-05-22 23:17:06 -07:00
Kartik K. Agaram 8aa72be226 fold variables for screen dimensions into the app framework 2022-05-22 18:45:21 -07:00
Kartik K. Agaram 5d0e0f70c4 one more implication 2022-05-22 18:32:08 -07:00
Kartik K. Agaram f421e1daa5 basic test-enabled framework
Tests still have a lot of side-effects on the real screen. We'll
gradually clean those up.
2022-05-22 18:29:52 -07:00
Kartik K. Agaram 555726a87d rename 2022-05-22 18:23:04 -07:00
Kartik K. Agaram f1eba43ed3 yet another bugfix. But for how long? 2022-05-22 10:40:34 -07:00
Kartik K. Agaram ac74592c42 beginnings of a test harness
I have no fucking idea what I'm doing. All I know is that there's still
too many goddamn bugs[1]. Test motherfucking harness or bust. For
starters this is just the default love.run from
https://love2d.org/wiki/love.run

[1] The following file crashes if you repeatedly press cursor-down:
  <<
    a
    b

    c
    ```lines
    ```

    x
  >>
2022-05-22 10:40:34 -07:00
Kartik K. Agaram 5b9d8337c1 up and down arrow now moving by screen line where possible
Drawings can't be drawn partially, which sometimes makes things jerky.
2022-05-21 23:02:08 -07:00
Kartik K. Agaram 84898ed43a bugfix: printing the first part of a line at the bottom made it seem non-wrapping
Still lots wrong here.
2022-05-21 22:32:43 -07:00
Kartik K. Agaram 96dfe4f669 cleaner 2022-05-21 21:08:21 -07:00
Kartik K. Agaram 1e63bf0e0a I feel confident now that page-down is working. 2022-05-21 20:52:44 -07:00
Kartik K. Agaram 6550a4c6d7 couple of TODOs 2022-05-21 16:42:22 -07:00
Kartik K. Agaram c0df6f86a4 beginning of a new approach to scroll+wrap
So far I've just changed how existing variables are organized, and put
some scaffolding in place for dealing with the new types. Next up:
rewriting the code for scrolling to something that feels more obviously
correct.
2022-05-21 16:42:22 -07:00
Kartik K. Agaram 9a18b09de3 bugfix: escape key to hide online help 2022-05-21 14:22:34 -07:00
Kartik K. Agaram a70d9a81dc help tweak 2022-05-21 14:20:16 -07:00
Kartik K. Agaram 0537f81744 show when we're naming a point 2022-05-21 14:18:31 -07:00
Kartik K. Agaram bb9e23a638 support for naming points
There's still an absence of affordance showing when you're in naming mode.
2022-05-21 14:03:06 -07:00
Kartik K. Agaram 96df187488 new known issue with drawings 2022-05-21 10:36:27 -07:00
Kartik K. Agaram 77ba9433d7 one missing transition between shape modes 2022-05-21 09:30:02 -07:00
Kartik K. Agaram 5d8e7a3cc6 several bugfixes
All introduced when I built rectangles and squares in commit e27165cb.
2022-05-21 08:41:54 -07:00
Kartik K. Agaram 10c961855a bugfix: rectangles and squares are now saved 2022-05-21 08:28:34 -07:00
Kartik K. Agaram f42c3f8181 bugfix
Looks like I never retested rectangles after I implemented drawing
squares, even though I made changes to the rectangle implementation :/
2022-05-21 08:20:55 -07:00
Kartik K. Agaram 95e17dac2f bugfix: missed rename in one file 2022-05-21 08:10:11 -07:00