about summary refs log tree commit diff stats
path: root/text.lua
Commit message (Collapse)AuthorAgeFilesLines
* bugfix: couple of margin-relative computationsKartik K. Agaram2022-07-171-2/+2
|
* separate data structure for each line's cache dataKartik K. Agaram2022-07-171-50/+58
| | | | I have no idea what the performance implications of this are..
* keep all text cache writes inside text.luaKartik K. Agaram2022-07-171-5/+5
|
* 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-171-3/+3
| | | | - 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-171-1/+2
| | | | - Text.in_line
* drop some redundant args when clearing the cacheKartik K. Agaram2022-07-171-10/+10
|
* drop some redundant args from Text.drawKartik K. Agaram2022-07-171-2/+3
|
* bring back a set of constantsKartik K. Agaram2022-07-161-3/+3
| | | | | It's starting to sink in that I don't want hard-coded constants inside objects.
* replace globals with args in a few functionsKartik K. Agaram2022-07-121-3/+3
| | | | | | | | | - Drawing.draw_shape - Drawing.draw_pending_shape - Drawing.in_drawing - Drawing.find_or_insert_point - Drawing.near - Drawing.pixels
* deduce left/right from state where possibleKartik K. Agaram2022-07-121-64/+64
|
* left/right margin -> left/right coordinatesKartik K. Agaram2022-07-121-31/+31
| | | | | 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-121-107/+93
| | | | | | | | | | | | | - 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-121-17/+17
| | | | | - 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
* add state arg to a few functionsKartik K. Agaram2022-07-121-12/+12
| | | | | | | - record_undo_event - undo_event - redo_event - snapshot
* add state arg to a few functionsKartik K. Agaram2022-07-121-4/+4
| | | | | | | | | | | - 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
* add state arg to a few functionsKartik K. Agaram2022-07-121-122/+122
| | | | | | | | | | | | | - 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
* add state arg to Text.textinputKartik K. Agaram2022-07-121-8/+8
|
* add state arg to schedule_saveKartik K. Agaram2022-07-121-6/+6
|
* add state arg to Text.keychord_pressedKartik K. Agaram2022-07-121-104/+104
|
* add state arg to some functionsKartik K. Agaram2022-07-121-22/+22
| | | | | | - Text.draw - Text.draw_cursor - Text.draw_search_bar
* group all editor globalsKartik K. Agaram2022-07-121-299/+299
| | | | We're still accessing them through a global. But we'll change that next.
* make colors easier to editKartik K. Agaram2022-07-111-4/+4
|
* stop pretending globals are localKartik K. Agaram2022-07-111-4/+0
| | | | | One advantage of this approach: we don't end up with multiple lexical scopes containing duplicates of the same modules.
* skip multiple consecutive whitespaceKartik K. Agaram2022-07-111-2/+27
|
* support other whitespace chars in word movementsKartik K. Agaram2022-07-111-5/+11
|
* done passing left/right margins everywhereKartik K. Agaram2022-07-081-16/+16
| | | | | | | The final step is to add them to: - Text.compute_fragments Doing it carefully caught 5 call-sites that my tests didn't catch.
* add args to some functionsKartik K. Agaram2022-07-081-14/+14
| | | | - Text.populate_screen_line_starting_pos
* add args to some functionsKartik K. Agaram2022-07-081-6/+6
| | | | - Text.to2
* add args to some functionsKartik K. Agaram2022-07-081-5/+5
| | | | - Text.previous_screen_line
* add args to some functionsKartik K. Agaram2022-07-081-10/+10
| | | | - Text.snap_cursor_to_bottom_of_screen
* add args to some functionsKartik K. Agaram2022-07-081-10/+12
| | | | - Text.nearest_cursor_pos
* add args to some functionsKartik K. Agaram2022-07-081-3/+3
| | | | - Text.move_cursor_down_to_next_text_line_while_scrolling_again_if_necessary
* add args to some functionsKartik K. Agaram2022-07-081-2/+2
| | | | - Text.cursor_at_final_screen_line
* add args to some functionsKartik K. Agaram2022-07-081-5/+5
| | | | - Text.pos_at_start_of_cursor_screen_line
* add args to some functionsKartik K. Agaram2022-07-081-3/+2
| | | | - Text.to_pos_on_line
* indentKartik K. Agaram2022-07-081-1/+4
|
* add args to some functionsKartik K. Agaram2022-07-081-2/+2
| | | | - Text.in_line
* add args to some functionsKartik K. Agaram2022-07-081-3/+3
| | | | | | | | | - Text.clip_selection - Text.cut_selection - Text.delete_selection - Text.delete_selection_without_undo - Text.mouse_pos - Text.to_pos
* add args to some functionsKartik K. Agaram2022-07-081-28/+28
| | | | | | | | | | | | - Text.pageup - Text.pagedown - Text.up - Text.down - Text.end_of_line - Text.word_left - Text.word_right - Text.left - Text.right
* start passing left/right margins everywhereKartik K. Agaram2022-07-081-8/+8
| | | | | | | | | | | 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.
* rename a couple of variablesKartik K. Agaram2022-07-081-10/+10
|
* drop an arg from a functionKartik K. Agaram2022-07-081-1/+1
|
* switch arg for a functionKartik K. Agaram2022-07-081-15/+11
|
* optimization: moving cursor to next wordKartik K. Agaram2022-07-051-4/+12
|
* bugfix: avoid scrolling on 'end'Kartik K. Agaram2022-07-051-6/+14
| | | | | 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.