Commit Graph

73 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
07d7015dd4 Add ! negation support, fix POSIX exit statuses, and improve vi emulation with comprehensive tests 2026-03-07 22:04:33 -05:00
490ce4571d added tests for the parser 2026-03-07 14:38:07 -05:00
b137c38e92 completely rewrote test suite for top level src files and all builtin files 2026-03-06 23:42:14 -05:00
cdc9e7e266 fixed compound commands not working in pipelines
improved pipe assignment logic to prevent potential resource leaks
2026-03-05 13:34:34 -05:00
b46877edde implemented err pipes 2026-03-05 10:51:24 -05:00
e07a853074 the second field of history entries in the hist file now contain command runtime in seconds, instead of an id
updated rustfmt.toml and formatted codebase
2026-03-05 10:29:54 -05:00
234f93ee56 fixed comments breaking the parser 2026-03-05 01:26:42 -05:00
7be79a3803 rustfmt'd the codebase 2026-03-04 19:52:29 -05:00
ecd6eda424 panics now also write a log to ~/.local/shed/log/panic.log 2026-03-04 19:39:53 -05:00
c642a96da7 Added 'read_key' builtin that allows widget scripts to handle input 2026-03-03 20:39:09 -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
84aed128d6 completion now prefers completing variable names before trying comp specs
improved color picking for error messages
2026-03-01 11:02:13 -05:00
ffe78620a9 Fixed 'C' and 'D' verbs deleting the newline character 2026-03-01 02:39:22 -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
c61360865f added 'map', 'pop', 'push', 'fpop', 'fpush', and 'rotate' builtins 2026-02-27 20:37:58 -05:00
c559d1cc75 ran clippy fix 2026-02-27 11:05:08 -05:00
c508180228 Added -j flag to 'complete' for completing job names/pids 2026-02-27 11:03:56 -05:00
ccb1f43915 Implemented arrays and array indexing 2026-02-26 00:32:54 -05:00
28ce008234 Various line editor fixes and optimizations 2026-02-25 15:43:08 -05:00
478374814e fixed new crash caused by recent refactor 2026-02-24 14:18:36 -05:00
cd40760ea0 Refactored internals for builtins inside of pipelines 2026-02-24 10:54:24 -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
982d11f21b implemented the trap builtin 2026-02-19 16:39:18 -05:00
9483477edd fixed the $0 parameter not being populated correctly 2026-02-19 14:24:55 -05:00
3b698628c6 Tab completion has been implemented
more small highlighter tune ups

2>&1 style redirections now work properly
2026-02-18 21:53:36 -05:00
87d465034a properly implemented read builtin
fixed bugs related to redirections and compound commands

improved io routing logic
2026-02-17 17:30:21 -05:00
8933153c2b Fixed conditional block parsing not handling command chains 2026-01-29 05:01:26 -05:00
a4f48abd49 Added prompt escape code expansion flag to echo, -p
Added non-formatted runtime to prompt escape codes

Added prompt escape code that expands to the output of a shell function

Reworked internal logic for termios control
2026-01-29 03:46:35 -05:00
8ad53f09b3 Added rustfmt.toml, formatted codebase 2025-08-12 13:58:25 -04:00
09767c9682 work on implementing visual mode 2025-05-30 19:06:09 -04:00
8bdc21c8d5 implemented autosuggestions for the line editor 2025-05-30 01:12:18 -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
4af31ba8ef Reduced the amount of time that file redirections stay open 2025-05-19 00:03:50 -04:00
94e22d68f3 about to implement readline myself 2025-05-15 00:53:39 -04:00
6006244739 more unit tests, better highlighting 2025-05-13 20:22:25 -04:00
df17ecdfb8 added arithmetic substitution 2025-05-13 13:08:53 -04:00
25e85edab0 Added regex to [[ ]] tests 2025-05-13 00:48:19 -04:00
cc8d384704 About to rework lexer and parser return types 2025-05-09 01:00:36 -04:00
18d0b669b3 Parser tweaks 2025-05-08 21:21:23 -04:00
4d16ffa60f implemented for loops 2025-04-20 05:16:50 -04:00
80b6453597 Implemented subshells and improved error handling 2025-03-29 22:16:26 -04:00
1eb19092cc implemented globbing and tilde expansions 2025-03-28 12:02:34 -04:00
1854578d49 Improved error reporting and fully implemented the shopt command 2025-03-26 23:41:19 -04:00
30cd3c0b73 Implemented flags and extra safety for zoltraak 2025-03-24 20:25:38 -04:00
70d114254d Implemented a new builtin and improved error handling 2025-03-24 17:53:32 -04:00
937bbbacdd Cleaned up warnings 2025-03-23 17:41:12 -04:00
32ec62b52f switched to Arc instead of Rc for input strings 2025-03-23 17:37:15 -04:00