about summary refs log tree commit diff stats
Commit message (Collapse)AuthorAgeFilesLines
* .Kartik K. Agaram2021-06-112-22/+25
|
* .Kartik K. Agaram2021-06-111-1/+0
|
* .Kartik K. Agaram2021-06-111-12/+11
|
* .Kartik K. Agaram2021-06-111-54/+50
| | | | | | Inline a function by patching a few variable names. I don't even have to worry about `return` statements if there's a single call and it's in tail position in the caller.
* .Kartik K. Agaram2021-06-111-11/+13
|
* start showing parse errors under definitionsKartik K. Agaram2021-06-111-2/+10
| | | | | | We don't have support for browsing them yet. Just errors for now, which should only be a line or two. Larger traces might be useful for inspecting results of macroexpansion.
* .Kartik K. Agaram2021-06-111-6/+6
|
* .Kartik K. Agaram2021-06-111-13/+34
|
* .Kartik K. Agaram2021-06-092-36/+36
|
* .Kartik K. Agaram2021-06-092-47/+32
|
* .Kartik K. Agaram2021-06-092-15/+19
|
* .Kartik K. Agaram2021-06-091-3/+4
|
* .Kartik K. Agaram2021-06-095-44/+52
| | | | Add argument to a few functions.
* .Kartik K. Agaram2021-06-092-3/+3
|
* make tests pass againKartik K. Agaram2021-06-093-15/+19
| | | | | 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-093-24/+135
| | | | | | | | | | | | | | | | | | | | | | | | | | | | 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-2/+12
|
* .Kartik K. Agaram2021-06-081-11/+11
|
* .Kartik K. Agaram2021-06-081-330/+330
|
* shell: function modal now also creates functionsKartik K. Agaram2021-06-083-5/+183
|
* shell: expand set of possible errorsKartik K. Agaram2021-06-083-19/+68
| | | | | 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-084-17/+132
|
* .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-087-72/+99
| | | | | | | 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.
* stop printing more than one '.' per assertionKartik K. Agaram2021-06-081-6/+12
| | | | Screen real-estate is precious on the boot screen since we have no scrolling.
* shell: first test for entire environmentKartik K. Agaram2021-06-082-6/+77
| | | | This introduces some ergonomic issues. But we have to start somewhere.
* fizz-buzz take 2Kartik K. Agaram2021-06-061-11/+24
|
* reverse-video for cursorKartik K. Agaram2021-06-062-15/+18
|
* fizz-buzz exerciseKartik K. Agaram2021-06-061-3/+11
|
* make fake screens more realisticKartik K. Agaram2021-06-061-9/+33
| | | | The real screen silently clips coordinates out of bounds.
* shell: concept of palettesKartik K. Agaram2021-06-061-13/+8
|
* growing disenamored with up and downKartik K. Agaram2021-06-061-8/+5
|
* .Kartik K. Agaram2021-06-061-14/+24
|
* 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?
* .Kartik Agaram2021-06-061-0/+250
|
* .Kartik Agaram2021-06-061-0/+18
|
* .Kartik Agaram2021-06-062-3/+1
|
* shell: more foundations from LispKartik K. Agaram2021-06-061-0/+44
|
* .Kartik K. Agaram2021-06-061-1/+3
|
* .Kartik K. Agaram2021-06-061-4/+4
|
* .Kartik K. Agaram2021-06-061-4/+6
|
* nicer onboarding experience with VimKartik K. Agaram2021-06-062-14/+20
| | | | Thanks Sumeet Agarwal (https://github.com/sumeet) for helping catch this.
* hacky Vim syntax highlighting for Mu LispKartik K. Agaram2021-06-062-1/+34
|
* shell: fleshing out the 'standard library'Kartik K. Agaram2021-06-062-1/+11
| | | | | | Based loosely on Arc's arc.arc: http://arclanguage.org https://github.com/arclanguage/anarki/blob/official/arc.arc
* .Kartik K. Agaram2021-06-061-1/+1
|
* shell: support negative integer literalsKartik K. Agaram2021-06-063-1/+133
| | | | We still don't support _any_ fractional literals, positive or negative.