about summary refs log tree commit diff stats
path: root/shell/environment.mu
Commit message (Collapse)AuthorAgeFilesLines
* .Kartik K. Agaram2021-06-091-1/+1
| | | | Add argument to a few functions.
* make tests pass againKartik K. Agaram2021-06-091-1/+1
| | | | | I'm temporarily disabling the pending state. I'm also providing a clearer error message when we encounter the bug.
* snapshot: attempt at modifying a function nameKartik K. Agaram2021-06-091-0/+64
| | | | | | | | | | | | | | | | | | | | | | | | | | | | It turns out there's another problem, and it predates the ability to create new definitions: ctrl-s triggers a call to `evaluate`, which inserts a new definition into globals. which has a null gap buffer. All this happens long before the new code in this commit, resulting in a null gap buffer by the time we get to word-at-cursor. Which in turn happens because we perform a raw `evaluate`, which doesn't update the gap buffer like `run` does (using `maybe-stash-gap-buffer-to-global`). And arguably `evaluate` shouldn't mess with the gap buffer. Gap buffers are a UI concern. The hardest version of this immediate scenario: It's unclear how to guarantee that every definition have a gap buffer, when two definitions may share one (closures sharing a lexical environment). New plan: - improve the logic for detecting definitions. Looking at the outermost layer isn't enough. And a single expression can create multiple definitions. - extract a helper to attach a single gap buffer to multiple definitions. - have the UI detect conflicts in gap buffers and prompt the user for a decision if a different gap buffer already exists for a definition.
* .Kartik K. Agaram2021-06-081-330/+330
|
* shell: function modal now also creates functionsKartik K. Agaram2021-06-081-4/+163
|
* shell: expand set of possible errorsKartik K. Agaram2021-06-081-12/+13
| | | | | Requires a change to mu.subx, to unify literal strings with generic (addr array _)
* .Kartik K. Agaram2021-06-081-20/+17
|
* a place for error messages in the function modalKartik K. Agaram2021-06-081-7/+101
| | | | Probably not ideal, but it's a start.
* ok, function modal now has full coverageKartik K. Agaram2021-06-081-3/+104
|
* .Kartik K. Agaram2021-06-081-7/+85
|
* first test for function modalKartik K. Agaram2021-06-081-6/+41
|
* .Kartik K. Agaram2021-06-081-37/+33
|
* .Kartik K. Agaram2021-06-081-14/+38
| | | | | | | I wrote a comment about how some code was not covered by tests, and then promptly forgot what it was for. This is why we need tests. Now the hack is gone.
* shell: first test for entire environmentKartik K. Agaram2021-06-081-0/+71
| | | | This introduces some ergonomic issues. But we have to start somewhere.
* handle navigating to a non-existent functionKartik K. Agaram2021-06-061-14/+23
| | | | We need a place to show error messages. Maybe on the top row?
* more space for definitionsKartik K. Agaram2021-06-061-4/+4
|
* refresh edited definitions on ctrl-sKartik K. Agaram2021-06-051-2/+16
|
* working on jumping to word at cursorKartik K. Agaram2021-06-051-0/+45
| | | | | I had a nice clean definition for word-at-cursor, but it's wrong and I'm going to have to mangle it.
* start editing function definitionsKartik K. Agaram2021-06-041-1/+1
|
* run sandbox even when cursor in functionKartik K. Agaram2021-06-041-0/+7
|
* bugfix: show functions after ctrl-g, enterKartik K. Agaram2021-06-041-1/+8
|
* select function to render firstKartik K. Agaram2021-06-041-1/+1
|
* conditionally display cursor on function sideKartik K. Agaram2021-06-041-1/+1
| | | | | Always shows at top-most function. Can't actually do any editing yet.
* conditionally display cursor in sandboxKartik K. Agaram2021-06-041-1/+5
|
* modal dialog for function name to jump toKartik K. Agaram2021-06-041-2/+99
|
* .Kartik K. Agaram2021-06-041-4/+4
|
* .Kartik K. Agaram2021-06-041-0/+54
| | | | Keyboard state machine for jumping to function definition.
* .Kartik K. Agaram2021-06-041-1/+1
|
* .Kartik K. Agaram2021-06-041-2/+2
|
* .Kartik K. Agaram2021-06-041-3/+3
|
* .Kartik K. Agaram2021-06-041-2/+2
|
* .Kartik K. Agaram2021-06-031-2/+11
|
* starting to support function editingKartik K. Agaram2021-06-031-1/+10
|
* .Kartik K. Agaram2021-06-031-0/+177