Scenario: make some edits, select some text, make some more edits. Press
ctrl-z.
Before this commit, undo would stop at the point of selection and
previous edits would become unreachable.
After this commit, both ctrl-z and ctrl-y seem able to span the point of
selection.
Not directly relevant here, but forks of this project that permit
zooming can run into weird glitches if margins are not a whole number of
pixels.
I'd always assumed a type system that divided ints into floats was
strictly superior, but now I have experienced a situation where
requiring ints isn't just a compromise for the underlying CPU
implementation. Particularly since Lua's print() silently hides really
tiny fractions.
We had a regression since commit 60e1023f0 on Nov 27. Turns out we do
need the ancient hack after all.
But no, we won't go back to the hack. It's a simple problem to fix
right. And while we're at it, we'll fix the test harness to be more
realistic so it would have caught this problem.
I'm a bit leery of going down this road:
- If there's a bug in how I render logs graphically that could be
extremely misleading. Perhaps this suggests that the code to log
things should be significantly simpler than the code that might be
debugged. If writing the debug helper requires all my smarts I'm not
smart enough to debug using the helper, etc. Given this idea, the fact
that I'm copying production code into the logging helper is
concerning.
- There's a question of what code it's ok for logging helpers to depend
on. This is an issue shared with tests. I often implicitly (and
without meaning to) assume the presence of some well-tested helpers
when writing tests. If those helpers ever break I can get into a
rabbit hole of debugging. This problem might be even more insidious
with logging helpers that will give me no indication when they break.
Still and all, it's cool to see menus in my logs. Let's see if it's
useful.