Kartik K. Agaram
82cdd9ddd1
bugfix: couple of margin-relative computations
2022-07-17 22:29:37 -07:00
Kartik K. Agaram
29dac6a6ec
separate data structure for each line's cache data
...
I have no idea what the performance implications of this are..
2022-07-17 21:05:01 -07:00
Kartik K. Agaram
64eed74980
keep all text cache writes inside text.lua
2022-07-17 10:06:39 -07:00
Kartik K. Agaram
4ff6de9951
switch to line index in a function
...
- Text.screen_line_width
2022-07-17 09:37:50 -07:00
Kartik K. Agaram
7e7f5b9256
switch to line index in a function
...
- Text.compute_fragments
2022-07-17 09:30:50 -07:00
Kartik K. Agaram
860cd49f67
make a function oblivious to line data structure
...
- Text.screen_line_index
2022-07-17 09:21:57 -07:00
Kartik K. Agaram
2859063d9d
switch to line index in a function
...
- Text.to_pos_on_line
2022-07-17 09:19:53 -07:00
Kartik K. Agaram
6b3ddc816f
switch to line index in a function
...
- Text.populate_screen_line_starting_pos
2022-07-17 09:14:10 -07:00
Kartik K. Agaram
48b7de4fde
switch to line index in a function
...
- Text.in_line
2022-07-17 09:14:10 -07:00
Kartik K. Agaram
b95206fd0d
drop some redundant args when clearing the cache
2022-07-17 08:18:48 -07:00
Kartik K. Agaram
038f06a342
drop some redundant args from Text.draw
2022-07-17 08:00:56 -07:00
Kartik K. Agaram
f61d4269f5
bring back a set of constants
...
It's starting to sink in that I don't want hard-coded constants inside
objects.
2022-07-16 08:48:02 -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
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
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
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
93aca28cb3
add state arg to Text.keychord_pressed
2022-07-12 16:23:28 -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
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
3850fbac35
make colors easier to edit
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
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
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
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
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