about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
...
* clean up some printsKartik K. Agaram2022-07-201-17/+10
| | | | | (Looking at prints in Text.draw, Text.compute_fragments and Text.nearest_pos_less_than)
* move a var closer to its useKartik K. Agaram2022-07-201-2/+2
|
* more clearly skip prints before screen topKartik K. Agaram2022-07-201-21/+19
|
* unify two similar functionsKartik K. Agaram2022-07-192-24/+16
| | | | | | 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.
* keep text from overflowing right marginKartik K. Agaram2022-07-192-41/+48
| | | | | | | | | | 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.
* delete some duplicate initializationKartik K. Agaram2022-07-191-4/+0
|
* clean up a cross-test leakageKartik K. Agaram2022-07-191-9/+9
|
* bugfix: couple of margin-relative computationsKartik K. Agaram2022-07-172-3/+63
|
* separate data structure for each line's cache dataKartik K. Agaram2022-07-177-70/+211
| | | | I have no idea what the performance implications of this are..
* keep all text cache writes inside text.luaKartik K. Agaram2022-07-172-9/+8
|
* switch to line index in a functionKartik K. Agaram2022-07-171-2/+3
| | | | - Text.screen_line_width
* switch to line index in a functionKartik K. Agaram2022-07-171-16/+17
| | | | - Text.compute_fragments
* make a function oblivious to line data structureKartik K. Agaram2022-07-171-5/+5
| | | | - Text.screen_line_index
* switch to line index in a functionKartik K. Agaram2022-07-173-6/+6
| | | | - Text.to_pos_on_line
* switch to line index in a functionKartik K. Agaram2022-07-171-15/+16
| | | | - Text.populate_screen_line_starting_pos
* switch to line index in a functionKartik K. Agaram2022-07-173-4/+5
| | | | - Text.in_line
* drop some extra argsKartik K. Agaram2022-07-171-4/+4
|
* drop some redundant args when clearing the cacheKartik K. Agaram2022-07-172-11/+11
|
* fold together two largely similar casesKartik K. Agaram2022-07-171-28/+23
|
* drop some redundant args from Text.drawKartik K. Agaram2022-07-172-5/+6
|
* formattingKartik K. Agaram2022-07-162-3/+3
|
* bring back a set of constantsKartik K. Agaram2022-07-164-90/+89
| | | | | It's starting to sink in that I don't want hard-coded constants inside objects.
* more decoupling editor tests from AppKartik K. Agaram2022-07-161-1/+1
|
* more decoupling editor tests from AppKartik K. Agaram2022-07-161-3/+3
|
* more decoupling editor tests from AppKartik K. Agaram2022-07-161-13/+13
|
* more precise nameKartik K. Agaram2022-07-152-10/+10
|
* make test initializations a little more obviousKartik K. Agaram2022-07-155-156/+162
|
* bugfix: zoom in/out hotkeysKartik K. Agaram2022-07-131-0/+7
| | | | Broken since commit 3b36093553 5 hours ago.
* bugfix: resizeKartik K. Agaram2022-07-132-2/+9
|
* a more radical attempt at ignoring nil y'sKartik K. Agaram2022-07-132-7/+5
|
* no, bring back that defenseKartik K. Agaram2022-07-131-0/+4
| | | | | | | | | Scenario where I ran into it: start a stroke inside a drawing press 'o' to switch to circle mode (but any mode switch will do) The problem is that Text.textinput unconditionally blows away all .y values. Sometimes we have to wait for a draw() to fill them back in.
* a bug I've never run intoKartik K. Agaram2022-07-133-5/+10
| | | | | | The previous commit was failing inside a test that I can't reproduce manually. Perhaps it's something about how often draw/update run in practice. Anyways, it's definitely uncovered a real issue.
* hoist couple of variables outKartik K. Agaram2022-07-131-3/+6
| | | | This seems to uncover a corner case I'd never run into until now.
* use available variablesKartik K. Agaram2022-07-131-1/+1
|
* more idiomatic variable namesKartik K. Agaram2022-07-131-5/+5
|
* chunking by simple local variableKartik K. Agaram2022-07-131-4/+6
|
* make local functions look differentKartik K. Agaram2022-07-131-6/+6
|
* more chunks, same approachKartik K. Agaram2022-07-131-3/+6
|
* chunk up some long linesKartik K. Agaram2022-07-131-32/+32
| | | | | Hopefully this is more approachable. Though now I'm creating two new temporary functions on every draw. Whether I need them or not.
* .Kartik K. Agaram2022-07-121-0/+2
|
* drop final mention of state global beyond main.luaKartik K. Agaram2022-07-121-29/+28
| | | | | | | | | | This is all unfortunate in several ways - lots of functions have extra args - table lookups where we used to have a simple variable - program initialization is a lot more delicate Let's see if it was worthwhile. Can we now actually build around the editor component in forks?
* replace globals with args in a few functionsKartik K. Agaram2022-07-124-78/+81
| | | | | | | | | - Drawing.draw_shape - Drawing.draw_pending_shape - Drawing.in_drawing - Drawing.find_or_insert_point - Drawing.near - Drawing.pixels
* correct a mis-named thresholdKartik K. Agaram2022-07-122-2/+4
|
* drop heavyweight near check on file load/storeKartik K. Agaram2022-07-121-19/+25
|
* deduce left/right from state where possibleKartik K. Agaram2022-07-123-78/+78
|
* left/right margin -> left/right coordinatesKartik K. Agaram2022-07-129-369/+486
| | | | | Editor state initialization now depends on window dimensions, so we have to more carefully orchestrate startup.
* add state arg to a few functionsKartik K. Agaram2022-07-122-26/+26
| | | | | | | - Drawing.current_drawing - Drawing.select_shape_at_mouse - Drawing.select_point_at_mouse - Drawing.select_drawing_at_mouse
* add state arg to a few functionsKartik K. Agaram2022-07-124-121/+107
| | | | | | | | | | | | | - Text.cursor_at_final_screen_line - Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary - Text.snap_cursor_to_bottom_of_screen - Text.in_line - Text.to_pos_on_line - Text.to2 - Text.to1 - Text.previous_screen_line - Text.tweak_screen_top_and_cursor - Text.redraw_all
* add state arg to a few functionsKartik K. Agaram2022-07-123-20/+20
| | | | | - Text.pos_at_start_of_cursor_screen_line - Text.cursor_past_screen_bottom
* add state arg to a few functionsKartik K. Agaram2022-07-121-26/+26
| | | | | | - Text.left - Text.right - Text.right_without_scroll