266 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
dc0ff23903 Merge branch 'main' of github.com:km-clay/shed 2026-03-06 00:46:54 -05:00
5d827c7654 added a slight debounce to bell bytes sent to the terminal 2026-03-06 00:46:43 -05:00
c8531fb384 Update README formatting 2026-03-05 20:10:06 -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
633bc16960 Merge branch 'main' of github.com:km-clay/shed 2026-03-05 13:34:47 -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
a34c939953 Add documentation comments to surround_plugin.sh
Add comments explaining the surround_plugin implementation
2026-03-05 10:55:28 -05:00
902f1e6889 Adjust image height in README.md
Updated image height for the shed component in README.
2026-03-05 10:53:52 -05:00
8cd3405751 Resize images in README for shed component
Updated images to new dimensions for shed component and search.
2026-03-05 10:53:25 -05:00
624677b961 Update images in README.md 2026-03-05 10:52:31 -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
30ada66cab added an example script for keymaps based on the nvim-surround plugin 2026-03-05 01:39:03 -05:00
234f93ee56 fixed comments breaking the parser 2026-03-05 01:26:42 -05:00
8658860ddd Add images to README for shed features 2026-03-05 01:02:40 -05:00
0ba632ddb3 Update README.md 2026-03-05 01:01:49 -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