Commit Graph

22 Commits

Author SHA1 Message Date
307386ffc6 tightened up some logic with indenting and joining lines
added more linebuf tests

extracted all verb match arms into private methods on LineBuf
2026-03-13 19:24:30 -04:00
b137c38e92 completely rewrote test suite for top level src files and all builtin files 2026-03-06 23:42:14 -05:00
7be79a3803 rustfmt'd the codebase 2026-03-04 19:52:29 -05:00
fbadbebf8c Implemented the autocmd builtin, which allows you to register hooks for certain shell events. 2026-03-04 14:12:10 -05:00
2ea44c55e9 implemented 'type' and 'wait' builtins
fixed some tcsetpgrp() misbehavior

fixed not being able to redirect stderr from builtins
2026-03-01 17:14:48 -05:00
4a0cefee32 More progress on integrating ariadne's error reporting 2026-03-01 02:20:58 -05:00
ef0f66efaa Work on integrating error reporting using the ariadne crate 2026-02-28 20:30:12 -05:00
1b63eff783 Add array support for local/export/readonly builtins
Add array length syntax ${arr[#]}

Map read path now expands variables before splitting on ., fixing map "$node" with dotted paths

Map assignment path uses quote-aware token splitting, enabling quoted keys like "--type="

Completion errors now display above prompt instead of being overwritten

Fix nested if/fi parser bug when closing keywords appear on separate lines

Add QuoteState enum, replacing ad-hoc quote tracking booleans across lexer, highlighter, and expansion

Add split_tk_at/split_tk for quote-aware token splitting with span preservation

Refactor setup_builtin to accept optional argv for deferred expansion

Add ariadne dependency (not yet wired up)
2026-02-28 15:54:53 -05:00
a18a0b622f command arguments are now underlined if they match an existing path -m ran rustfmt on the entire codebase 2026-02-19 21:32:03 -05:00
18e36622a0 handled some unwraps in cd
error reporting now blames the function call span instead of the errored command inside the function
2026-02-19 18:27:51 -05:00
ad0e4277cb Implemented proper variable scoping
Extracted business logic out of signal handler functions

Consolidated state variables into a single struct

Implemented var types
2026-01-28 19:30:48 -05:00
8ad53f09b3 Added rustfmt.toml, formatted codebase 2025-08-12 13:58:25 -04:00
220f636ebd removed placeholder text in prompt
cd no longer panics if the given directory doesn't exist (wtf?)
2025-05-29 01:29:25 -04:00
80b6453597 Implemented subshells and improved error handling 2025-03-29 22:16:26 -04:00
32ec62b52f switched to Arc instead of Rc for input strings 2025-03-23 17:37:15 -04:00
92d7766765 Early work on scripting features 2025-03-16 02:56:29 -04:00
505b968c60 Various additions and improvements 2025-03-15 21:04:45 -04:00
97b4b1835d Progress 2025-03-15 00:02:05 -04:00
58abe3bc3d Implemented prompt expansion 2025-03-09 03:30:03 -04:00
d35ff7bc6f Implemented case statements 2025-03-06 15:32:28 -05:00
1b3e2c0887 Early implementation of scripting elements 2025-03-05 01:36:58 -05:00
a9a9642a2a Initial commit for fern 2025-03-02 16:32:15 -05:00