about summary refs log tree commit diff stats
path: root/text.lua
Commit message (Collapse)AuthorAgeFilesLines
* experiment: slightly adaptive scrollingKartik K. Agaram2022-06-041-2/+14
| | | | | | | | | | | When long wrapping lines go past the current page, I find myself scrolling before I get to the bottom. So let's scroll less, usually from the start of the bottom-most line, even if it wraps multiple screen lines. The challenge with this is to ensure that a long line that fills the whole page by itself doesn't get you stuck. I take some care to make sure <pagedown> always makes forward progress.
* make cursor more obviousKartik K. Agaram2022-06-041-1/+1
| | | | | Let's see if this is good enough. I can also bump up to 4px radius if I need to.
* more precise search highlightingKartik K. Agaram2022-06-031-6/+2
|
* extract a functionKartik K. Agaram2022-06-031-20/+1
|
* extract a couple of filesKartik K. Agaram2022-06-031-1193/+4
|
* bugfix: restore state after C-f (find)Kartik K. Agaram2022-06-031-4/+8
|
* highlight selection while draggingKartik K. Agaram2022-06-031-12/+40
| | | | | | | Mouse stuff is pretty strenuous. For the first time I have to be careful not to recompute too often. And I ran into a race condition for the first time where resetting line.y within App.draw meant mouse clicks were extremely unlikely to see line.y set.
* select text using mouse dragKartik K. Agaram2022-06-031-2/+6
| | | | Doesn't yet highlight while dragging.
* up arrow to search previousKartik K. Agaram2022-06-031-0/+50
|
* switch copy/paste to ctrl- hotkeysKartik K. Agaram2022-06-021-48/+1
|
* switch undo/redo to ctrl- hotkeysKartik K. Agaram2022-06-021-22/+2
|
* extract a new variableKartik K. Agaram2022-06-021-93/+61
|
* crisp font renderingKartik K. Agaram2022-06-021-193/+135
|
* find textKartik K. Agaram2022-06-021-4/+76
|
* scroll if necessary on pasteKartik K. Agaram2022-06-021-0/+23
|
* renameKartik K. Agaram2022-06-021-2/+2
|
* test harness now supports copy/pasteKartik K. Agaram2022-06-021-3/+68
|
* bugfix: pasting newlinesKartik K. Agaram2022-06-021-12/+21
|
* more efficient undo/redoKartik K. Agaram2022-06-021-56/+36
| | | | | Now the bottleneck shifts to applying undo/redo in large files. But things should be snappy if you don't use the sluggish feature.
* renameKartik K. Agaram2022-06-021-12/+12
|
* this implementation undo load-tests quite poorlyKartik K. Agaram2022-06-021-0/+28
| | | | | | Even a 10KB file gets sluggish within the first 1k characters inserted. We're not running out of memory, we're just overloading Lua's GC.
* after much struggle, a brute-force undoKartik K. Agaram2022-06-021-0/+125
| | | | | | | | | Incredibly inefficient, but I don't yet know how to efficiently encode undo mutations that can span multiple lines. There seems to be one bug related to creating new drawings; they're not spawning events and undoing past drawing creation has some weird artifacts. Redo seems to consistently work, though.
* avoid scrolling down if possibleKartik K. Agaram2022-05-301-1/+28
|
* support non-text lines in Text.to2Kartik K. Agaram2022-05-301-1/+3
| | | | | Originally I was only using it on cursor line, but there's no reason that has to be true in general.
* regression: typing uppercase letters in textKartik K. Agaram2022-05-301-1/+1
|
* .Kartik K. Agaram2022-05-291-4/+4
|
* cut/copy selected text to clipboardKartik K. Agaram2022-05-291-0/+45
|
* selecting text and deleting selectionsKartik K. Agaram2022-05-291-4/+291
| | | | | | I've written a few tests for delete_selection, but the way different operations initialize the selection seems fairly standard and not worth testing so far.
* bugfix for non-ASCIIKartik K. Agaram2022-05-291-3/+4
|
* extract a couple of methodsKartik K. Agaram2022-05-281-5/+25
|
* extract a couple more methodsKartik K. Agaram2022-05-281-26/+34
|
* move some codeKartik K. Agaram2022-05-281-0/+28
| | | | | I had this idea originally to keep text.lua oblivious to drawings. But that hasn't been true for some time. Losing battle.
* extract a few methodsKartik K. Agaram2022-05-281-107/+121
|
* moveKartik K. Agaram2022-05-281-36/+38
|
* .Kartik K. Agaram2022-05-281-1/+1
|
* scroll on backspaceKartik K. Agaram2022-05-281-0/+68
|
* .Kartik K. Agaram2022-05-281-4/+4
|
* .Kartik K. Agaram2022-05-281-8/+8
|
* fix a regression in line wrappingKartik K. Agaram2022-05-281-1/+44
|
* scroll on enterKartik K. Agaram2022-05-281-0/+36
|
* paste in text with M-vKartik K. Agaram2022-05-261-0/+8
|
* M-left/M-right for word-based motionsKartik K. Agaram2022-05-251-0/+22
|
* extract couple of functionsKartik K. Agaram2022-05-251-34/+42
|
* couple of renamesKartik K. Agaram2022-05-251-23/+14
|
* keep repeated cursor up/down motions from drifting leftKartik K. Agaram2022-05-251-1/+5
|
* bugfix: don't append metadata when it already existsKartik K. Agaram2022-05-251-2/+6
|
* bugfixKartik K. Agaram2022-05-251-0/+41
| | | | | I spent 20 minutes converting a manual test to a reproducible automated one, but in the process I knew exactly what the problem was. Nice.
* test and App helper for mouse clicksKartik K. Agaram2022-05-251-1/+18
|
* no, make sure to compute line width after screen dimensionsKartik K. Agaram2022-05-251-1/+2
|
* couple more testsKartik K. Agaram2022-05-251-0/+45
| | | | Along with the App helpers needed for them.