Commit Graph

59 Commits

Author SHA1 Message Date
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 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 f1eba43ed3 yet another bugfix. But for how long? 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 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 da250585c0 disable some debug prints
I'm still very much in the region where this is valuable sensor data.
This is a new domain.
2022-05-20 22:46:32 -07:00
Kartik K. Agaram 0773b986dd more precise height calculation when scrolling up as much as possible while keeping cursor on screen 2022-05-20 22:45:49 -07:00
Kartik K. Agaram e420245ee3 keep cursor on screen when pressing 'down' 2022-05-20 22:18:39 -07:00
Kartik K. Agaram e3dc4c330b rename 2022-05-20 22:17:47 -07:00
Kartik K. Agaram a3f72abbde reduce ambitions a bit: page up/down need not start screen from the middle of a line
But we still have work to do for cursor up/down.
2022-05-20 21:30:59 -07:00
Kartik K. Agaram 6b91c0688e first stab at equally hacky cursor down support 2022-05-20 20:33:30 -07:00
Kartik K. Agaram ec5706e1ea stop recomputing Cursor_x now that we're saving it 2022-05-20 20:32:55 -07:00
Kartik K. Agaram e223df41bc clearer comments 2022-05-20 20:32:00 -07:00
Kartik K. Agaram 7d9125b0b0 some more logging
Still lots of signs it's all messed up, but I can't be sure until I
bring all the other keyboard shortcuts in sync.

I just need a better data structure that simplifies the logic. Perhaps
talk in terms of screen lines. In which case:
  We'll need to convert lines to screen lines at some point.
  We'll need to fix up screen lines when inserting and deleting
  characters.
2022-05-20 18:16:13 -07:00
Kartik K. Agaram c28f6ba031 snapshot - no, that's all wrong
I've been only thinking about up arrow when cursor is at top of screen.
Hopefully this is better.
2022-05-20 16:56:04 -07:00
Kartik K. Agaram ce94f8bf79 another piece of support for line wrapping in cursor up 2022-05-20 15:19:43 -07:00
Kartik K. Agaram 7e6705a113 first stab at supporting wrapping in cursor up
Looks pretty clean.
2022-05-20 08:55:45 -07:00
Kartik K. Agaram 1c20d514f2 bugfix
I'd wrapped currx in two conditionals, and not noticed that it gets
reclaimed within the other.

The hint is clearly more work than it's worth. Just take it out.
2022-05-20 08:02:03 -07:00
Kartik K. Agaram 3ec8019cc0 new globals: draw partial screen line up top
I'm not setting these yet. Rendering seems to be working after manually
setting them.
2022-05-20 06:58:17 -07:00
Kartik K. Agaram 1573dd8425 start using some globals 2022-05-20 06:10:04 -07:00
Kartik K. Agaram bca0c1fab9 bugfix 2022-05-20 05:44:04 -07:00
Kartik K. Agaram 7fd3c92efe start remembering where the cursor is drawn in px
We'll start using this in cursor up/down motions.
2022-05-20 05:41:25 -07:00
Kartik K. Agaram 5f2ef2faaf extract a function 2022-05-20 05:40:42 -07:00
Kartik K. Agaram e223182ad5 move 2022-05-19 22:58:04 -07:00
Kartik K. Agaram d622043284 planning out cursor up/down over wrapped lines 2022-05-19 22:56:55 -07:00
Kartik K. Agaram a7c7fd6bce bugfix: cursor past end of screen line 2022-05-19 22:41:24 -07:00
Kartik K. Agaram e2b371ea37 bugfix: text past cursor was rendered red on wrapped lines 2022-05-19 22:41:03 -07:00
Kartik K. Agaram 2f8d727c0b bugfix: show cursor when past end of line 2022-05-19 22:35:26 -07:00
Kartik K. Agaram 7749e459a7 change text cursor shape 2022-05-19 22:34:28 -07:00
Kartik K. Agaram 8f85b29893 clicking to the right of a wrapped line 2022-05-19 22:26:15 -07:00
Kartik K. Agaram d4daac442b clicking now moves the cursor even on long, wrapped lines 2022-05-19 22:07:12 -07:00
Kartik K. Agaram 4fb4e0eb25 rename 2022-05-19 22:02:49 -07:00
Kartik K. Agaram 839d2df3ea bugfix
As usual, binary search is hard to get right. This time I was never
actually selecting between left and right when they were just one
character apart.
2022-05-19 21:53:08 -07:00
Kartik K. Agaram f7ff4dc9c2 eliminate assumptions that line length == size in bytes 2022-05-19 17:46:02 -07:00
Kartik K. Agaram a9398e499b snapshot: wrapping long lines at word boundaries
Still not working:
  clicking on text to move the cursor aborts
  up/down motions still move by logical lines rather than screen lines
2022-05-19 17:29:14 -07:00