about summary refs log tree commit diff stats
path: root/text.lua
Commit message (Collapse)AuthorAgeFilesLines
* first successful pagedown test, first bug found by testKartik K. Agaram2022-05-231-3/+58
| | | | | | | | | | | | | | | | | | | 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.
* first test!Kartik K. Agaram2022-05-221-12/+31
|
* yet another bugfix. But for how long?Kartik K. Agaram2022-05-221-1/+1
|
* up and down arrow now moving by screen line where possibleKartik K. Agaram2022-05-211-25/+47
| | | | Drawings can't be drawn partially, which sometimes makes things jerky.
* bugfix: printing the first part of a line at the bottom made it seem ↵Kartik K. Agaram2022-05-211-21/+26
| | | | | | non-wrapping Still lots wrong here.
* cleanerKartik K. Agaram2022-05-211-3/+2
|
* I feel confident now that page-down is working.Kartik K. Agaram2022-05-211-1/+9
|
* couple of TODOsKartik K. Agaram2022-05-211-1/+1
|
* beginning of a new approach to scroll+wrapKartik K. Agaram2022-05-211-130/+156
| | | | | | | 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.
* support for naming pointsKartik K. Agaram2022-05-211-3/+1
| | | | There's still an absence of affordance showing when you're in naming mode.
* disable some debug printsKartik K. Agaram2022-05-201-23/+23
| | | | | I'm still very much in the region where this is valuable sensor data. This is a new domain.
* more precise height calculation when scrolling up as much as possible while ↵Kartik K. Agaram2022-05-201-4/+21
| | | | keeping cursor on screen
* keep cursor on screen when pressing 'down'Kartik K. Agaram2022-05-201-2/+4
|
* renameKartik K. Agaram2022-05-201-7/+7
|
* reduce ambitions a bit: page up/down need not start screen from the middle ↵Kartik K. Agaram2022-05-201-7/+3
| | | | | | of a line But we still have work to do for cursor up/down.
* first stab at equally hacky cursor down supportKartik K. Agaram2022-05-201-11/+42
|
* stop recomputing Cursor_x now that we're saving itKartik K. Agaram2022-05-201-5/+3
|
* clearer commentsKartik K. Agaram2022-05-201-2/+3
|
* some more loggingKartik K. Agaram2022-05-201-1/+11
| | | | | | | | | | | 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.
* snapshot - no, that's all wrongKartik K. Agaram2022-05-201-6/+30
| | | | | I've been only thinking about up arrow when cursor is at top of screen. Hopefully this is better.
* another piece of support for line wrapping in cursor upKartik K. Agaram2022-05-201-1/+9
|
* first stab at supporting wrapping in cursor upKartik K. Agaram2022-05-201-13/+22
| | | | Looks pretty clean.
* bugfixKartik K. Agaram2022-05-201-16/+3
| | | | | | | 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.
* new globals: draw partial screen line up topKartik K. Agaram2022-05-201-2/+6
| | | | | I'm not setting these yet. Rendering seems to be working after manually setting them.
* start using some globalsKartik K. Agaram2022-05-201-5/+5
|
* bugfixKartik K. Agaram2022-05-201-1/+1
|
* start remembering where the cursor is drawn in pxKartik K. Agaram2022-05-201-0/+2
| | | | We'll start using this in cursor up/down motions.
* extract a functionKartik K. Agaram2022-05-201-8/+8
|
* moveKartik K. Agaram2022-05-191-35/+35
|
* planning out cursor up/down over wrapped linesKartik K. Agaram2022-05-191-0/+2
|
* bugfix: cursor past end of screen lineKartik K. Agaram2022-05-191-1/+1
|
* bugfix: text past cursor was rendered red on wrapped linesKartik K. Agaram2022-05-191-0/+2
|
* bugfix: show cursor when past end of lineKartik K. Agaram2022-05-191-0/+5
|
* change text cursor shapeKartik K. Agaram2022-05-191-1/+2
|
* clicking to the right of a wrapped lineKartik K. Agaram2022-05-191-9/+9
|
* clicking now moves the cursor even on long, wrapped linesKartik K. Agaram2022-05-191-5/+50
|
* renameKartik K. Agaram2022-05-191-2/+2
|
* bugfixKartik K. Agaram2022-05-191-2/+7
| | | | | | 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.
* eliminate assumptions that line length == size in bytesKartik K. Agaram2022-05-191-9/+10
|
* snapshot: wrapping long lines at word boundariesKartik K. Agaram2022-05-191-6/+82
| | | | | | Still not working: clicking on text to move the cursor aborts up/down motions still move by logical lines rather than screen lines
* a few more integer coordinatesKartik K. Agaram2022-05-191-5/+5
|
* drop unused argKartik K. Agaram2022-05-191-1/+1
|
* delete another arg that can be deducedKartik K. Agaram2022-05-191-3/+3
|
* handle tab charactersKartik K. Agaram2022-05-181-1/+8
|
* bugfix: ensure Cursor_line is always on a text lineKartik K. Agaram2022-05-181-0/+33
| | | | | | | | | | | | | | | | | | | | Manual test used here: abc ```lines {"p1":{"y":72,"x":82},"mode":"line","p2":{"y":29,"x":169}} ``` def ```lines {"p1":{"y":36,"x":56},"mode":"line","p2":{"y":59,"x":163}} ``` ```lines ``` ghi jkl Hitting page-down moves the cursor from abc to ghi. The 'ghi' line should be fully visible on screen.
* scroll past first pageKartik K. Agaram2022-05-181-0/+13
| | | | | | Still some limitations. The text cursor has to be visible on screen, so if you have a long series of drawings without intervening lines of text you won't be able to scroll through them all.
* split mouse_pressed events between Text and DrawingKartik K. Agaram2022-05-171-7/+20
|
* split keyboard handling between Text and DrawingKartik K. Agaram2022-05-171-0/+132
|
* beginnings of a module for the text editorKartik K. Agaram2022-05-171-0/+54