Commit Graph

975 Commits

Author SHA1 Message Date
Kartik K. Agaram 9f962b7cac make local functions look different 2022-07-13 08:04:06 -07:00
Kartik K. Agaram cfa04c3ca1 more chunks, same approach 2022-07-13 08:02:41 -07:00
Kartik K. Agaram 5a04d0c221 chunk up some long lines
Hopefully this is more approachable. Though now I'm creating two new
temporary functions on every draw. Whether I need them or not.
2022-07-13 07:50:50 -07:00
Kartik K. Agaram 75ec5c9087 . 2022-07-12 22:13:06 -07:00
Kartik K. Agaram 9e9e8ed35c drop final mention of state global beyond main.lua
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?
2022-07-12 22:05:53 -07:00
Kartik K. Agaram 70a15b3bc9 replace globals with args in a few functions
- Drawing.draw_shape
  - Drawing.draw_pending_shape
  - Drawing.in_drawing
  - Drawing.find_or_insert_point
  - Drawing.near
  - Drawing.pixels
2022-07-12 21:58:46 -07:00
Kartik K. Agaram 307e875c1c correct a mis-named threshold 2022-07-12 21:41:09 -07:00
Kartik K. Agaram 3dd5413dbf drop heavyweight near check on file load/store 2022-07-12 21:29:30 -07:00
Kartik K. Agaram 2ae9cacd97 deduce left/right from state where possible 2022-07-12 20:59:24 -07:00
Kartik K. Agaram 3b36093553 left/right margin -> left/right coordinates
Editor state initialization now depends on window dimensions, so we have
to more carefully orchestrate startup.
2022-07-12 20:54:50 -07:00
Kartik K. Agaram 1ede1c3c6d add state arg to a few functions
- Drawing.current_drawing
  - Drawing.select_shape_at_mouse
  - Drawing.select_point_at_mouse
  - Drawing.select_drawing_at_mouse
2022-07-12 17:27:00 -07:00
Kartik K. Agaram f7d4deef0c add state arg to a few functions
- 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
2022-07-12 17:24:01 -07:00
Kartik K. Agaram 2b1889353b add state arg to a few functions
- Text.pos_at_start_of_cursor_screen_line
  - Text.cursor_past_screen_bottom
2022-07-12 17:14:14 -07:00
Kartik K. Agaram 5107df3cd0 add state arg to a few functions
- Text.left
  - Text.right
  - Text.right_without_scroll
2022-07-12 17:10:11 -07:00
Kartik K. Agaram 674d571576 add state arg to few functions
- draw_help_without_mouse_pressed
  - draw_help_with_mouse_pressed
  - current_shape
2022-07-12 17:05:21 -07:00
Kartik K. Agaram 5aae527759 add state arg to a few functions
- Text.search_next
  - Text.search_previous
2022-07-12 17:02:53 -07:00
Kartik K. Agaram 5b91af1a66 add state arg to a few functions
- record_undo_event
  - undo_event
  - redo_event
  - snapshot
2022-07-12 16:55:32 -07:00
Kartik K. Agaram 188bbc73cc add state arg to a few functions
- Text.draw_highlight
  - Text.clip_selection
  - Text.selection
  - Text.cut_selection
  - Text.delete_selection
  - Text.delete_selection_without_undo
  - Text.mouse_pos
  - Text.to_pos
2022-07-12 16:51:18 -07:00
Kartik K. Agaram 800a5c064a add state arg to a few functions
- Text.insert_at_cursor
  - Text.insert_return
  - Text.pageup
  - Text.pagedown
  - Text.up
  - Text.down
  - Text.start_of_line
  - Text.end_of_line
  - Text.word_left
  - Text.word_right
2022-07-12 16:39:42 -07:00
Kartik K. Agaram adeb5416c6 add state arg to Text.textinput 2022-07-12 16:33:26 -07:00
Kartik K. Agaram b7000215d8 add state arg to schedule_save 2022-07-12 16:30:41 -07:00
Kartik K. Agaram e990b1be92 add state arg to Drawing.update 2022-07-12 16:26:00 -07:00
Kartik K. Agaram 2307cb3ded add state arg to Drawing.draw 2022-07-12 16:25:29 -07:00
Kartik K. Agaram 93aca28cb3 add state arg to Text.keychord_pressed 2022-07-12 16:23:28 -07:00
Kartik K. Agaram cb5524ec58 . 2022-07-12 16:22:35 -07:00
Kartik K. Agaram d6795f9df0 add state arg to Drawing.mouse_released 2022-07-12 16:21:56 -07:00
Kartik K. Agaram 780105cb13 add state arg to Drawing.keychord_pressed 2022-07-12 16:21:03 -07:00
Kartik K. Agaram d7ee9a75e4 add state arg to Drawing.mouse_pressed 2022-07-12 16:20:25 -07:00
Kartik K. Agaram 3874f325f8 add state arg to some functions
- Text.draw
  - Text.draw_cursor
  - Text.draw_search_bar
2022-07-12 16:20:20 -07:00
Kartik K. Agaram 92ad99853e call edit rather than App callbacks in tests 2022-07-12 15:41:17 -07:00
Kartik K. Agaram 81ecca89ff start passing in Editor_state explicitly
In this commit, top-level edit functions:
  - edit.draw
  - edit.update
  - edit.quit
  - edit.mouse_pressed
  - edit.mouse_released
  - edit.textinput
  - edit.keychord_pressed
  - edit.key_released
2022-07-12 15:33:06 -07:00
Kartik K. Agaram e95b4fec12 initialize contains test state 2022-07-12 15:29:22 -07:00
Kartik K. Agaram 8bbc1ffe34 group all editor globals
We're still accessing them through a global. But we'll change that next.
2022-07-12 15:24:56 -07:00
Kartik K. Agaram a5f725ab3b bring couple more globals back to the app level 2022-07-12 13:45:38 -07:00
Kartik K. Agaram 094f3bd7e8 button framework is at the app level 2022-07-12 13:40:53 -07:00
Kartik K. Agaram 9b49c8da77 start decoupling editor tests from App 2022-07-11 23:18:26 -07:00
Kartik K. Agaram 3850fbac35 make colors easier to edit 2022-07-11 23:18:26 -07:00
Kartik K. Agaram 2e3a85d94b experiment: new edit namespace
Still lots to do, but the eventual hope is that this will make this
project's code easier to reuse from other LÖVE projects.

One gotcha: even as we start putting code more aggressively into nested
tables, tests must remain at the top-level. Otherwise they won't run.
2022-07-11 23:18:26 -07:00
Kartik K. Agaram 3dccd7f81a stop pretending globals are local
One advantage of this approach: we don't end up with multiple lexical
scopes containing duplicates of the same modules.
2022-07-11 22:11:58 -07:00
Kartik K. Agaram e68d235c5f . 2022-07-11 22:03:41 -07:00
Kartik K. Agaram d2d54db1f9 fix a variable name 2022-07-11 22:01:30 -07:00
Kartik K. Agaram 6c4483976e skip multiple consecutive whitespace 2022-07-11 19:18:54 -07:00
Kartik K. Agaram bc2c14c899 support other whitespace chars in word movements 2022-07-11 18:56:19 -07:00
Kartik K. Agaram 92e572fc89 flesh out some tests for word movements 2022-07-11 18:46:49 -07:00
Kartik K. Agaram c7978ffc73 done passing left/right margins everywhere
The final step is to add them to:
  - Text.compute_fragments

Doing it carefully caught 5 call-sites that my tests didn't catch.
2022-07-08 16:32:20 -07:00
Kartik K. Agaram 62a6c335d1 add args to some functions
- Text.populate_screen_line_starting_pos
2022-07-08 16:28:20 -07:00
Kartik K. Agaram ae1a71ea46 add args to some functions
- Text.to2
2022-07-08 16:26:04 -07:00
Kartik K. Agaram 532b8dddd7 add args to some functions
- Text.previous_screen_line
2022-07-08 16:24:10 -07:00
Kartik K. Agaram 3eb89adca6 add args to some functions
- Text.snap_cursor_to_bottom_of_screen
2022-07-08 16:22:11 -07:00
Kartik K. Agaram b163f1bc51 add args to some functions
- Text.nearest_cursor_pos
2022-07-08 16:15:04 -07:00