| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Backspace kinda works. Parens are colored in three rotating colors which
helps with balancing. Comments and strings are colored.
But it's hard to handle backspace in all situations. Like if you
backspace over a quote you have to either quit the string-slurping
routine you're in, or return to string slurping mode. Similarly for
comments; *there* you don't even have a end delimiter to let you know
you're back in a comment. You have to keep track of what came before.
I experimented with a library but it interacts poorly with the charterm
library I'm already using. Ended up with a gross inefficient approach
instead.
|
|
|
|
|
| |
We'll never be able to avoid dying on syntax errors.
But hopefully we can make sessions easy to restore.
|
|
|
|
|
|
|
| |
Next step: convenience features like balancing parens, coloring parens.
For that I'll have to leave line-based buffering behind.
My workflow seems to be spike-test-clean.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
(Another attempt at 623.)
I dunno, this may all be a wild goose chase. I haven't been disciplined
in tagging in-out arguments in 'read-move' and its helpers. Maybe I
should just drop those 'nochange' oargs in 'read' and 'write'. Maybe I
should reserve output args only for return values that callers might
actually care about, and use more conventional metadata like 'const' or
'unique' or 'inout' on other args.
|
| |
|
|
|
|
|
|
|
|
|
| |
I dunno, this may all be a wild goose chase. I haven't been disciplined
in tagging in-out arguments in 'read-move' and its helpers. Maybe I
should just drop those 'nochange' oargs in 'read' and 'write'. Maybe I
should reserve output args only for return values that callers might
actually care about, and use more conventional metadata like 'const' or
'unique' or 'inout' on other args.
|
| |
|
|
|
|
|
|
|
|
|
| |
I just did this in 611; what's the point of all this if tests can't stay
passing?
I don't understand why buffered-stdin.mu needs to preempt itself. stdin
and buffered-stdin somehow end up sharing a single circular buffer,
that's probably causing a race condition.
|
|
|
|
|
|
| |
2 bugs found:
a) Have to slurp the newlines.
b) Have to clear the line-buffer at the start of each line.
|
| |
|
| |
|
|
|
|
| |
Chessboard now *almost* handles backspace perfectly.
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Shove the complexity of reading newlines as low as possible.
|
| |
|
|
|
|
|
|
| |
Shove the complexity of printing newlines as low as possible.
Definite instability in that one trace.
|
|
|
|
|
|
|
|
|
|
| |
We need the hack of printing characters typed to screen right after we
see them. But only when it's the real screen. And there's no way to
write a test for that because it explicitly shouldn't happen for fake
terminals :(
Never mind, we'll be able to test it when we provide some mechanism for
suppressing print. The equivalent of 'stty -echo'.
|
|
|
|
|
| |
Still surprisingly hard to debug. We might be barking up the wrong tree.
Or we might just need to lump it. System software is hard.
|
| |
|
| |
|
| |
|
|
|
|
|
| |
Use asynchronous channels like 'stdin' for most tests.
Use the synchronous fakes for testing low-level stdin helpers.
|
| |
|
| |
|
| |
|
| |
|
|
|
|
| |
Also cleaned up much of the mess in 594.
|
|
|
|
|
|
| |
I'd caused a bug in Arc: https://github.com/arclanguage/anarki/commit/97b3464256
Almost done interrupting and restarting routines.
|
| |
|
| |
|
|
|
|
|
| |
I don't remember what exactly we wanted to test in the second move.
But we can write it next time we need it.
|
| |
|
| |
|
|
|
|
|
| |
Now that there isn't a stdout channel we can postpone the test showing
the need to flush-stdout before clearing screen.
|