Skylar Hill
90b9d770f0
Add simple error handling
...
Now we don't have to deal with a completely obliterated terminal every time
something breaks! \o/
2023-11-12 00:42:45 -06:00
Skylar Hill
34e57d8dcc
Replace single large enum with several simple lists
2023-11-09 22:02:48 -06:00
Skylar Hill
55a251642f
Allow merging lines by backspacing at the beginning of a line
2023-11-08 11:58:12 -06:00
Skylar Hill
cd851bffc7
Refine behavior of next-node
...
I originally thought next-node should wrap around to the next sibling of the
parent node, but actually playing with the navigation showed that what
I *actually* wanted was for it to go to the first child in the absence of a
next sibling.
2023-11-08 11:32:08 -06:00
Skylar Hill
f51617f774
Clamp cursor to within the actual text
2023-11-08 09:52:45 -06:00
Skylar Hill
8fbeeccfdb
Add rudimentary buffer scrolling when cursor leaves window
...
Squashed in fix for crash when only moving one line
2023-11-08 09:52:07 -06:00
Juliana Rat
29c5c9b6a6
Remove redundant optional and keyword initializers
2023-11-07 01:44:56 -05:00
Juliana Rat
c6f4a197dd
Fix indentation again
2023-11-06 23:07:52 -05:00
Skylar Hill
d8ecbc3b98
Fix out-of-bounds errors on empty file
2023-11-06 21:58:10 -06:00
Skylar Hill
5e53e1ac97
Merge branch 'toolkit-interface'
2023-11-06 21:43:52 -06:00
Skylar Hill
dce1c2a09e
Create abstract interface between editor code and toolkit rendering
2023-11-06 21:38:06 -06:00
Juliana Rat
29b563f303
Cleanup
...
* sloth/editor.scm: Fix indentation to match new .dir-locals.el
* zhu-li: Delete. She did the thing and now she is no longer needed :'(
* hall.scm: Fix indentation to match new .dir-locals.el
2023-11-05 23:35:16 -06:00
Juliana Rat
eee88df4bc
Cleanup
...
* sloth/editor.scm: Fix indentation to match new .dir-locals.el
* zhu-li: Delete. She did the thing and now she is no longer needed :'(
2023-11-05 18:56:53 -05:00
Juliana Rat
b27cfd7bc3
Update, reindent infrastructure files
...
* guix.scm: Define guile-ts-next to use newer commit "correctly"
* manifest.scm: Define guile-hall-next to use newer commit "correctly"
2023-11-05 18:45:51 -05:00
Juliana Rat
5ab58f9248
Add Guix .dir-locals.el
2023-11-05 18:42:10 -05:00
Skylar Hill
d7ac8fc31c
Disallow the root node from becoming point-node
...
Unless it's the only node, anyway. This fixes the issue of not being
able to navigate across the children of the document root without
first doing a down-node.
2023-11-04 23:16:18 -05:00
Skylar Hill
4af941954d
Add fallback movements for next- and prev-node
2023-11-04 22:40:14 -05:00
Skylar Hill
5c5f7ff1ba
Fix crash on impossible tree movement
2023-11-04 20:14:03 -05:00
Skylar Hill
00f4935d3b
Extremely rudimentary tree navigation
...
Needs some error checking, and we want to only consider named nodes so
we're navigating the abstract tree rather than the tree of all tokens.
2023-11-04 19:11:48 -05:00
Skylar Hill
eff0f10911
Use commit of guile-ts supporting TREE_SITTER_GRAMMAR_PATH
2023-11-04 18:05:57 -05:00
Skylar Hill
57ce73370d
Add state structure
...
As we expand with new features and get tree-sitter working, we're
going to have more to keep track of than can reasonably be done with
individual arguments. Guile's modified srfi-9 lets us do this in a
nice functional style.
This also subtly tweaks the behavior of character insertion so it's
actually correct.
2023-11-04 16:42:30 -05:00
Juliana Rat
3f7684fb13
Add vim movement keys
...
Some indentation weirdness also got caught up in this, not sure what that's about...
2023-11-04 15:27:42 -05:00
Juliana Rat
4a7dee2f9e
Add all tree-sitter grammars in Guix
...
* guix.scm: Add all tree-sitter grammars in Guix repos; move Guile inputs out of
propagated-inputs; cleanup indentation and layout.
* hall.scm: Add all tree-sitter grammars in Guix repos.
2023-11-04 15:12:43 -04:00
Skylar
d723e9cd8d
hall.scm: Add tree-sitter-scheme dependency
2023-11-04 12:44:59 -05:00
Skylar
8a3c3b1aca
A Common Lisper walks into a Schemer bar and says
2023-11-04 12:15:31 -05:00
Skylar
976a1b137d
Insert, rather than change, characters in insert mode
2023-11-04 11:47:29 -05:00
Skylar
8f0e46ee5d
Support loading files
2023-11-04 11:45:31 -05:00
Skylar
4f112832a7
Add modal input layers
2023-11-04 10:54:06 -05:00
Skylar
213552d0fc
Okay we're officially gonna use spaces now
2023-11-04 09:29:18 -05:00
Juliana Rat
878eadd075
Setup initial architecture for testing
2023-11-04 02:03:23 -04:00
Juliana Rat
ae990b4784
Fix indenting
2023-11-04 02:02:41 -04:00
Skylar
09ffc17617
Add simple build script, update hall.scm
2023-11-03 22:18:00 -05:00
Skylar
1db39c1348
Create a basic ncurses buffer that can be edited
2023-11-03 22:15:11 -05:00
Juliana Rat
3d1d63d050
Setup infrastructure
2023-11-03 22:38:08 -04:00
skylar
bfafbbe8dc
Basic empty Hall project
...
FossilOrigin-Name: 1aafeec308f381ce775519ca1c50a2967529264bf8623780a7f23117d447c343
2023-11-03 07:48:08 +00:00
skylar
3a83839f37
initial empty check-in
...
FossilOrigin-Name: 66f54c054153180c57e77a959c8737cb55e182013eef8b12edebc1428a0af399
2023-11-03 05:40:31 +00:00