Commit Graph

749 Commits

Author SHA1 Message Date
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
Kartik K. Agaram 57e3aa092a add args to some functions
- Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary
2022-07-08 16:15:04 -07:00
Kartik K. Agaram 348c53f3ab add args to some functions
- Text.cursor_at_final_screen_line
2022-07-08 15:58:15 -07:00
Kartik K. Agaram 0106ad4b4f add args to some functions
- Text.pos_at_start_of_cursor_screen_line
2022-07-08 15:49:52 -07:00
Kartik K. Agaram abcc18002b add args to some functions
- Text.to_pos_on_line
2022-07-08 15:45:45 -07:00
Kartik K. Agaram 9fb8f25030 indent 2022-07-08 15:43:45 -07:00
Kartik K. Agaram 00c64ed6e4 add args to some functions
- Text.in_line
2022-07-08 15:37:09 -07:00
Kartik K. Agaram a27dd15c1f add args to some functions
- Text.clip_selection
  - Text.cut_selection
  - Text.delete_selection
  - Text.delete_selection_without_undo
  - Text.mouse_pos
  - Text.to_pos
2022-07-08 15:30:10 -07:00
Kartik K. Agaram 0853a030ac add args to some functions
- Text.pageup
  - Text.pagedown
  - Text.up
  - Text.down
  - Text.end_of_line
  - Text.word_left
  - Text.word_right
  - Text.left
  - Text.right
2022-07-08 15:17:12 -07:00
Kartik K. Agaram e39269b19e start passing left/right margins everywhere
I have a set of changes that passes all tests, but I'm going to commit
them very carefully to ensure I don't miss any call-sites. In this
commit I'm adding the args to:
  - Text.draw
  - Text.tweak_screen_top_and_cursor

But calls within them don't yet pass them where they should. In this
manner I'm going to progress systematically from the top down.
2022-07-08 15:12:17 -07:00
Kartik K. Agaram 8efdb898c6 rename a couple of variables 2022-07-08 14:18:23 -07:00
Kartik K. Agaram 6667c37066 affirm a priority 2022-07-08 14:16:55 -07:00
Kartik K. Agaram 048b6d9d3a drop an arg from a function 2022-07-08 09:44:49 -07:00
Kartik K. Agaram cff1e58cf6 switch arg for a function 2022-07-08 09:44:49 -07:00
Kartik K. Agaram 50a57d7ef6 stop scanning from start of file on every App.draw 2022-07-07 21:51:06 -07:00
Kartik K. Agaram 6dfe954c02 yet another bugfix in selection management
Thanks Leonard Schütz for the report!

Failing scenario:
  click to move cursor
  hit backspace

First backspace wasn't being doing anything earlier.
2022-07-07 07:39:01 -07:00
Kartik K. Agaram dff4587219 just keep the cursor visible after any input events
This is much nicer.
2022-07-06 09:03:54 -07:00
Kartik K. Agaram 2973324ef6 show cursor immediately after a mouse click
I've been subtly finding myself waiting for the cursor to stop blinking
to see if I clicked on the right place.
2022-07-06 08:57:45 -07:00
Kartik K. Agaram 8d00da889d better error message
akkartik/lines.love#1
2022-07-05 14:02:52 -07:00
Kartik K. Agaram 26a98d027b make freehand drawings smoother
Now I might actually use them more, and maybe I can start considering
taking out some shapes. Do I really need circles if I don't provide
ellipses?

Thanks Ivan Reese for the feedback. "What drawings does your tool
encourage?"

Minor note: taking out the deepcopy creates a cute little string like
effect, where the curve grows tighter the slower you draw it.
2022-07-05 11:38:08 -07:00
Kartik K. Agaram 4575648c12 optimization: moving cursor to next word 2022-07-05 11:27:41 -07:00
Kartik K. Agaram f2e5c4ffee bugfix: avoid scrolling on 'end'
There's multiple ways to do this, only one of them is right, and I keep
forgetting what it is. Turn it into a method.
2022-07-05 11:27:23 -07:00
Kartik K. Agaram 3422d92a00 bugfix: 'escape' to cancel a stroke
This has been broken since commit b544e8c357 on May 17 :/
I'm just undoing that commit, which turns out to be completely
unnecessary. And adding a test.
2022-07-05 11:06:55 -07:00
Kartik K. Agaram 3197bb5739 what should happen to selection while drawing?
First idea: just leave it alone. Let's see how this works.
2022-07-05 10:09:51 -07:00
Kartik K. Agaram 18aa21d0c0 keep online help inside of drawing 2022-07-04 22:01:57 -07:00
Kartik K. Agaram ea40a9b661 bugfix
Gracefully degrade if previously edited file shrinks.
2022-07-03 21:03:52 -07:00
Kartik K. Agaram 826207a54a link to export tool 2022-07-02 15:23:44 -07:00