Kartik K. Agaram
3f07ac51d2
some unnecessary mutations
...
Why are we not modifying Screen_top1.pos in these places? Because we
don't really need to modify Screen_top1 at all.
2022-06-05 08:11:33 -07:00
Kartik K. Agaram
8c0f54ee64
some typos
2022-06-05 07:59:44 -07:00
Kartik K. Agaram
6267ddd2eb
bugfix: backspace from start of file
2022-06-04 22:13:34 -07:00
Kartik K. Agaram
4c5ac9ae5e
regression: couldn't do many drawing operations because line.y was reset
2022-06-04 20:52:36 -07:00
Kartik K. Agaram
fa267e25e6
experiment: slightly adaptive scrolling
...
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.
2022-06-04 14:55:52 -07:00
Kartik K. Agaram
98f50f0b40
make cursor more obvious
...
Let's see if this is good enough. I can also bump up to 4px radius if I
need to.
2022-06-04 11:46:43 -07:00
Kartik K. Agaram
e2696fcc72
more precise search highlighting
2022-06-03 14:37:32 -07:00
Kartik K. Agaram
1bdb931575
extract a function
2022-06-03 14:30:51 -07:00
Kartik K. Agaram
0d52962b3e
extract a couple of files
2022-06-03 14:17:41 -07:00
Kartik K. Agaram
06e6ecdf8f
bugfix: restore state after C-f (find)
2022-06-03 13:59:40 -07:00
Kartik K. Agaram
b69801bdf1
highlight selection while dragging
...
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.
2022-06-03 13:22:03 -07:00
Kartik K. Agaram
73cc12047e
select text using mouse drag
...
Doesn't yet highlight while dragging.
2022-06-03 08:11:18 -07:00
Kartik K. Agaram
7301f3964c
up arrow to search previous
2022-06-03 07:48:41 -07:00
Kartik K. Agaram
8047ab9b89
switch copy/paste to ctrl- hotkeys
2022-06-02 23:52:26 -07:00
Kartik K. Agaram
dcdcd07902
switch undo/redo to ctrl- hotkeys
2022-06-02 23:48:35 -07:00
Kartik K. Agaram
0b63721bb0
extract a new variable
2022-06-02 23:40:20 -07:00
Kartik K. Agaram
9bbfc2be13
crisp font rendering
2022-06-02 23:36:07 -07:00
Kartik K. Agaram
b94b007db5
find text
2022-06-02 22:53:34 -07:00
Kartik K. Agaram
63f59e7c2c
scroll if necessary on paste
2022-06-02 19:28:38 -07:00
Kartik K. Agaram
15c54f4383
rename
2022-06-02 19:25:33 -07:00
Kartik K. Agaram
51f4f13ecc
test harness now supports copy/paste
2022-06-02 18:52:49 -07:00
Kartik K. Agaram
283c4e5804
bugfix: pasting newlines
2022-06-02 18:35:18 -07:00
Kartik K. Agaram
4f76ea37d7
more efficient undo/redo
...
Now the bottleneck shifts to applying undo/redo in large files. But
things should be snappy if you don't use the sluggish feature.
2022-06-02 17:46:30 -07:00
Kartik K. Agaram
22817492a3
rename
2022-06-02 16:44:18 -07:00
Kartik K. Agaram
477216a051
this implementation undo load-tests quite poorly
...
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.
2022-06-02 16:29:18 -07:00
Kartik K. Agaram
670886240f
after much struggle, a brute-force undo
...
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.
2022-06-02 15:45:25 -07:00
Kartik K. Agaram
819cb4b1cc
avoid scrolling down if possible
2022-05-30 17:24:23 -07:00
Kartik K. Agaram
b22bfe82db
support non-text lines in Text.to2
...
Originally I was only using it on cursor line, but there's no reason
that has to be true in general.
2022-05-30 15:40:36 -07:00
Kartik K. Agaram
3b4dacaee8
regression: typing uppercase letters in text
2022-05-30 15:36:53 -07:00
Kartik K. Agaram
6aeb89386c
.
2022-05-29 16:03:02 -07:00
Kartik K. Agaram
f17f5a1192
cut/copy selected text to clipboard
2022-05-29 15:33:24 -07:00
Kartik K. Agaram
23e9be3e10
selecting text and deleting selections
...
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.
2022-05-29 08:12:47 -07:00
Kartik K. Agaram
524157fb8a
bugfix for non-ASCII
2022-05-29 07:57:35 -07:00
Kartik K. Agaram
b0bb105cbe
extract a couple of methods
2022-05-28 23:11:53 -07:00
Kartik K. Agaram
d58aabe867
extract a couple more methods
2022-05-28 22:45:53 -07:00
Kartik K. Agaram
86532eef4b
move some code
...
I had this idea originally to keep text.lua oblivious to drawings.
But that hasn't been true for some time. Losing battle.
2022-05-28 22:45:08 -07:00
Kartik K. Agaram
18c62fb146
extract a few methods
2022-05-28 22:38:35 -07:00
Kartik K. Agaram
e79c895c7d
move
2022-05-28 22:27:47 -07:00
Kartik K. Agaram
10c1a70dd0
.
2022-05-28 22:24:17 -07:00
Kartik K. Agaram
916e4ce341
scroll on backspace
2022-05-28 09:41:02 -07:00
Kartik K. Agaram
cf94d36a5f
.
2022-05-28 09:35:06 -07:00
Kartik K. Agaram
95592b83fb
.
2022-05-28 09:31:51 -07:00
Kartik K. Agaram
3266262b1f
fix a regression in line wrapping
2022-05-28 09:04:21 -07:00
Kartik K. Agaram
8a3b66c813
scroll on enter
2022-05-28 08:38:49 -07:00
Kartik K. Agaram
0fab1b499d
paste in text with M-v
2022-05-26 20:40:50 -07:00
Kartik K. Agaram
d1f893a98e
M-left/M-right for word-based motions
2022-05-25 15:47:11 -07:00
Kartik K. Agaram
9892bc5d7c
extract couple of functions
2022-05-25 15:25:10 -07:00
Kartik K. Agaram
cb943b9aeb
couple of renames
2022-05-25 15:20:18 -07:00
Kartik K. Agaram
1fa295e599
keep repeated cursor up/down motions from drifting left
2022-05-25 15:08:53 -07:00
Kartik K. Agaram
34950353b9
bugfix: don't append metadata when it already exists
2022-05-25 14:56:21 -07:00