Commit Graph

230 Commits

Author SHA1 Message Date
8c6de4f4ec fixed heredocs using the same expansion pathway as regular strings
implemented backtick command subs

deferred heredoc expansion until redir time instead of parse time

implemented "$*" expansions

function defs like 'func   ()  { }' not parse correctly

fixed conjunctions short circuiting instead of skipping
2026-03-15 00:01:33 -04:00
9bd9c66b92 implemented '<>' redirects, and the 'seek' builtin
'seek' is a wrapper around the lseek() syscall

added noclobber to core shopts and implemented '>|' redirection syntax

properly implemented fd close syntax

fixed saved fds being leaked into exec'd programs
2026-03-14 20:04:20 -04:00
5173e1908d heredocs and herestrings implemented
added more tests to the test suite
2026-03-14 13:40:00 -04:00
1f9c96f24e more improvements to auto indent depth tracking
added test cases for the auto indent/dedent feature
2026-03-14 01:14:30 -04:00
09024728f6 Add token-aware depth calculator for indentation, improve brace group error handling, and clean up warnings 2026-03-13 20:57:04 -04:00
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
13227943c6 Add unit and integration tests for tab completion, fuzzy scoring, escaping, and wordbreak handling 2026-03-13 18:40:29 -04:00
a46ebe6868 Use COMP_WORDBREAKS for completion word breaking, fix cursor row in vi command mode, and append completion suffix instead of replacing full token 2026-03-13 11:18:57 -04:00
5500b081fe Strip escape markers from expanded patterns in parameter expansion operations 2026-03-12 09:20:07 -04:00
f279159873 tab completion and glob results are now properly escaped before being parsed 2026-03-11 18:48:07 -04:00
bb3db444db Add screensaver idle command support, autocd directory completion, and unused import cleanup 2026-03-10 12:20:40 -04:00
85e5fc2875 Fork non-command nodes for background jobs, fix interactive flag in child processes, and add empty variable test for [ builtin 2026-03-09 21:55:03 -04:00
ac429cbdf4 Fix crash when using vi visual selection on empty buffer 2026-03-08 00:36:46 -05:00
a464540fbe Implement SHLVL tracking, LINENO variable, and magic shell variables (SECONDS, EPOCHREALTIME, EPOCHSECONDS, RANDOM) 2026-03-08 00:30:22 -05: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
a43f8a6dde implemented umask builtin 2026-03-07 02:09:32 -05:00
ae73969969 fixed compiler warnings 2026-03-07 00:37:51 -05:00
fe9fd5c797 Fix function $0 param, scope positional args locally, follow symlinks in completion, expose SHED_VI_MODE variable, and clean up test helpers 2026-03-07 00:23:05 -05:00
b137c38e92 completely rewrote test suite for top level src files and all builtin files 2026-03-06 23:42:14 -05:00
42b4120055 Add ulimit builtin and optimize shed -c to exec single commands directly without forking 2026-03-06 11:07:46 -05:00
8a7211d42e Expose completion/history metadata to autocmd hooks and add broader Var conversion impls 2026-03-06 02:08:28 -05:00
5d827c7654 added a slight debounce to bell bytes sent to the terminal 2026-03-06 00:46:43 -05:00
e31e27f935 Add bracketed paste mode support for handling pasted text as verbatim input 2026-03-05 20:04:20 -05:00
cac7140c8b improve logic for highlighting visual selection in and around subshells 2026-03-05 14:24:38 -05:00
8c91748a7e Remove test module and delete all test files 2026-03-05 13:46:55 -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
1efaf0e516 updated max_hist default to 10,000 and added an option to remove the cap by setting it to -1 2026-03-05 09:34:02 -05:00
234f93ee56 fixed comments breaking the parser 2026-03-05 01:26:42 -05:00
694e9cf72f fixed PS1 and PSR variables being unresponsibe to changes inbetween prompt redraws 2026-03-05 00:39:16 -05:00
1b676db3a2 Changed '\!' prompt escape sequence to '\@' to avoid conflicting with escaping ! history expansion 2026-03-05 00:34:32 -05:00
0ec8c5cca1 implemented Ctrl+R command history searching and command history expansion with '\!' 2026-03-05 00:16:07 -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
206c6cb64e fixed issues with expansion of case arm patterns 2026-03-04 18:54:06 -05:00
b831bdf166 improvement on parsing accuracy for case patterns 2026-03-04 18:28:16 -05:00
3c70c9dace work on improving parameter expansion logic 2026-03-04 18:05:48 -05:00
553330a858 Early implementation of Verbatim mode 2026-03-04 15:26:54 -05:00
12267716be Added an on-exit hook for autocmd
improved mode-switching autocmd hook logic

fixed escaping logic in single quote expansion
2026-03-04 14:29:44 -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
ed3a4c8d56 work on fixing login shell i/o issues 2026-03-03 23:02:15 -05:00
d67b7c2aad fixed parser bug introduced in recent commit 2026-03-03 22:34:17 -05:00
c642a96da7 Added 'read_key' builtin that allows widget scripts to handle input 2026-03-03 20:39:09 -05:00
a300e54ee8 fixed default leader key ('\') not expanding properly 2026-03-03 03:33:53 -05:00
9d13565176 Added ex mode to line editor, a 'keymap' builtin, and a zsh-like widget system using ':!<shellcmd>' ex mode commands 2026-03-03 03:19:02 -05:00
a28446329e fuzzy completion now looks good and works good 2026-03-02 12:38:14 -05:00
a2b8fc203f Early implementation of fuzzy completion menu 2026-03-02 01:54:23 -05:00
5a62f72947 implemented 'getopts' builtin 2026-03-01 21:16:33 -05:00