about summary refs log tree commit diff stats
path: root/sandbox
Commit message (Collapse)AuthorAgeFilesLines
* 3980Kartik K. Agaram2017-08-226-55/+55
|
* 3977Kartik K. Agaram2017-08-221-1/+1
|
* 3962Kartik K. Agaram2017-06-271-8/+14
| | | | | Yet another regression, this time cascading from commit 3953. My scenario wasn't actually testing what I thought it was testing.
* 3960Kartik K. Agaram2017-06-251-13/+37
| | | | | Don't refresh entire sandbox side when toggling the expected result for a single sandbox.
* 3959Kartik K. Agaram2017-06-251-2/+14
| | | | | | | Don't unnecessarily write sandboxes to disk on F4. This seems to save almost 20% time when processing a large lesson directory with 36 sandboxes.
* 3958Kartik K. Agaram2017-06-252-13/+19
| | | | | | | | Improvement on fix 3957: rather than put a band-aid over a slow operation, eliminate the slowdown entirely. In this case it turns out we're unnecessarily saving files to disk when they could never be modified. Are we doing this on F4 as well?!
* 3957Kartik K. Agaram2017-06-251-0/+2
| | | | | Marking sandbox responses as expected can take a long time if there are many sandboxes. Indicate when a click is being worked on.
* 3954Kartik K. Agaram2017-06-251-21/+26
| | | | | | | | | | | | | | | | | | | | | | | | | | | As a blanket rule, down-arrow now stops scrolling once the bottom margin comes on screen. Now that we have page-wise scrolling with ctrl-f/b and line-wise scrolling with ctrl-s/x, we don't need to conflate scroll positioning with the arrow keys. And as a result, early students no longer have to struggle with accidentally scrolling part of the sandbox off the screen when there's tons of empty space available. `move-to-next-line` is still super messy and will need further rethinking, but this commit simplifies the codebase as a whole by eliminating a couple of historical accidents: a) We only introduced scrolling past the bottom of the screen to allow more sandboxes to come into view before we had scrolling for the sandbox side. b) We undid scrolling past the bottom in just the recipe side to allow errors to come into view. Since these historical details are now irrelevant, we no longer need separate logic for the recipe and sandbox sides, and we don't need to keep track of the recipe-bottom separate from the bottom margin of arbitrary editors.
* 3950Kartik K. Agaram2017-06-241-2/+43
| | | | | | Fix a regression caused by commit 3919. Thanks Juan Crispin Hernandez for running into this.
* 3946Kartik K. Agaram2017-06-231-3/+3
| | | | Fix the failing scenario of commit 3944.
* 3944Kartik K. Agaram2017-06-231-1/+25
| | | | | | | Reintroduce the failing test of commit 3938. It has two problems: a) it's failing, and b) it's not failing the same way as with a real screen.
* 3943Kartik K. Agaram2017-06-231-33/+3
| | | | Undo commit 3938 and almost everything after. Let's do this right.
* 3939Kartik K. Agaram2017-06-222-3/+7
|
* 3938Kartik K. Agaram2017-06-221-2/+32
| | | | | | | Fix an out-of-bounds write to the screen when sandboxes aligned just right. Thanks Ella Couch for reporting this issue.
* 3935Kartik K. Agaram2017-06-223-3/+3
|
* 3929Kartik K. Agaram2017-06-192-1/+3
|
* 3928Kartik K. Agaram2017-06-191-4/+5
|
* 3926Kartik K. Agaram2017-06-191-2/+57
| | | | | | Bugfix: when you hit `enter`, the cursor-row does not increment in *one* special situation: when the line wraps and the cursor is right at the start of one of the wrapped lines.
* 3925Kartik K. Agaram2017-06-191-0/+107
| | | | Bugfix: adjust row when hitting ctrl-u on wrapped lines.
* 3923Kartik K. Agaram2017-06-181-15/+66
| | | | | Bugfix: ctrl-a leaves things consistent in the presence of wrapped lines.
* 3922Kartik K. Agaram2017-06-172-4/+16
|
* 3921Kartik K. Agaram2017-06-162-3/+5
|
* 3920Kartik K. Agaram2017-06-161-28/+29
|
* 3919Kartik K. Agaram2017-06-161-3/+87
| | | | Bugfix: up-arrow in combination with wrapped lines.
* 3918Kartik K. Agaram2017-06-161-3/+47
| | | | Bugfix: handle wrapped lines when moving to end of line.
* 3916 - minimal prints when commenting linesKartik K. Agaram2017-06-161-17/+143
|
* 3913Kartik K. Agaram2017-06-151-2/+45
| | | | Bugfix in ctrl-u.
* 3912Kartik K. Agaram2017-06-151-34/+44
|
* 3904Kartik K. Agaram2017-06-092-5/+5
| | | | Standardize functions to put the main object being modified first.
* 3902 - drop redundant redraw of recipe side on F4Kartik K. Agaram2017-06-098-0/+29
| | | | | | This change is interesting because I only updated one test to gain confidence that F4 will never redraw the recipe side. (Most of the changes are to explicitly render-all before each scenario.)
* 3897 - various updates to documentationKartik K. Agaram2017-05-291-0/+13
|
* 3894 - comment/uncomment lines in edit appKartik K. Agaram2017-05-291-3/+111
|
* 3891Kartik K. Agaram2017-05-291-2/+2
|
* 3881 - allow students to turn sandboxes into recipesKartik K. Agaram2017-05-271-8/+2
| | | | Thanks Juan Crispin Hernandez for the suggestion.
* 3880Kartik K. Agaram2017-05-271-16/+1
|
* 3879Kartik K. Agaram2017-05-261-3/+3
|
* 3874Kartik K. Agaram2017-05-201-2/+1
| | | | Improve fix of commit 3866.
* 3873Kartik K. Agaram2017-05-202-3/+4
|
* 3869Kartik K. Agaram2017-05-192-67/+194
| | | | Clean up a few superficial things in Caleb's commit.
* 3866Kartik K. Agaram2017-05-191-2/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Yet another bugfix, this time in just the sandbox/ app: open sandbox/ with empty lesson/ directory type 'a' press backspace cursor was not moving left Now fixed. Turns out the sandbox/ app hadn't been working right since commit 3854. (Which ironically was a revert but clearly didn't revert enough; the last truly good commit was 3823, and we're still clawing our way back to the sunlight.) The issue in this case was that commit 3853 disabled update-cursor in some situations when it shouldn't have. To be safe, just always update-cursor one very event. I should probably reorganize this in edit/ as well, but it's not necessary for this particular bug. --- Incidentally, as part of my git bisecting I realized that the bug fixed in the trace browser as part of commit 3862 was very old: press '/' press some key press ctrl-u to erase press some key = out of bounds string access
* 3865Kartik K. Agaram2017-05-192-2/+0
|
* 3861 - screen untouched when entering console modeKartik K. Agaram2017-05-184-0/+4
|
* 3860 - stop buffering the screen in termboxKartik K. Agaram2017-05-189-21/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | To achieve this we have to switch to a model of the screen in termbox that is closer to the underlying terminal. Before: a screen is a grid of characters writing out of bounds does nothing After: a screen is a scrolling raster of characters writing out of bounds wraps to next line and scrolls if necessary To move to the new model, it was essential that I migrate my fake screen at the same time to mimic it. This is why the first attempt (commit 3824) failed (commit 3858). This is also why this commit can't be split into smaller pieces. The fake screen now 'scrolls' by rotating screen lines from top to bottom. There's still no notion of a scrollback buffer. The newer model is richer; it permits repl-like apps that upstream termbox can't do easily. It also permits us to simply use `printf` or `cout` to write to the screen, and everything mostly works as you would expect. Exceptions: a) '\n' won't do what you expect. You need to explicitly print both '\n' and '\r'. b) backspace won't do what you expect. It only moves the cursor back, without erasing the previous character. It does not wrap. Both behaviors exactly mimic my existing terminal's emulation of vt100. The catch: it's easy to accidentally scroll in apps. Out-of-bounds prints didn't matter before, but they're bugs now. To help track them down, use the `save-top-idx`, `assert-no-scroll` pair of helpers. An important trick is to wrap the cursor before rather after printing a character. Otherwise we end up scrolling every time we print to the bottom-right character. This means that the cursor position can be invalid at the start of a print, and we need to handle that. In the process we also lose the ability to hide and show the screen. We have to show the prints happening. Seems apt for a "white-box" platform like Mu.
* 3859Kartik K. Agaram2017-05-131-0/+1
|
* 3857Kartik K. Agaram2017-05-131-12/+0
|
* 3856Kartik K. Agaram2017-05-131-0/+1
| | | | | Bugfix on commit 3853: clear `render-all-on-no-more-events` once you've actually run the `render-all`.
* 3854Kartik K. Agaram2017-05-139-39/+39
| | | | Revert commits 3824, 3850 and 3852. We'll redo them more carefully.
* 3853Kartik K. Agaram2017-05-121-2/+13
| | | | | | Bring back commit 3844, albeit in simplified form. I'd forgotten that the one place where we still need to buffer rendering is when people hold down up/down arrow keys.
* 3852Kartik K. Agaram2017-05-123-2/+35
| | | | | | | | | | | | | Bugfix of commit 3850 for the sandbox/ app. I'd hoped to just quickly move past this ugly approach, but a cleaner way is more involved than I thought. This way is ugly partly because I'm introducing a bunch of conditionals without testing them. One or more of my additions may well be hiding bugs. Or I may need to add them in a few other places. The clean way is to update the fake screen model to accurately mimic the new real screen, where out of bounds prints aren't silently ignored, and where scrolling is a fact of life.
* 3844Kartik K. Agaram2017-05-061-43/+4
| | | | | Once I start optimizing most events to not repaint everything there's no need to be smart about queued-up events.