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
a464540fbe
Implement SHLVL tracking, LINENO variable, and magic shell variables (SECONDS, EPOCHREALTIME, EPOCHSECONDS, RANDOM)
2026-03-08 00:30:22 -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
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
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
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
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
3c70c9dace
work on improving parameter expansion logic
2026-03-04 18:05:48 -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
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
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
ef0f66efaa
Work on integrating error reporting using the ariadne crate
2026-02-28 20:30:12 -05:00
c508180228
Added -j flag to 'complete' for completing job names/pids
2026-02-27 11:03:56 -05:00
3d3693e2c3
Implemented -o opt for complete/compgen builtins
...
Completion candidates now come with a space by default, unless it's a directory
2026-02-27 09:44:33 -05:00
e82f45f2ea
Extracted readline from the dead prompt module
2026-02-25 20:00:19 -05:00
2d0d919e66
Prompt now only redraws on completed jobs and new commands
...
Tab completion now finds env var names as well as internally set names
2026-02-25 16:48:49 -05:00
28ce008234
Various line editor fixes and optimizations
2026-02-25 15:43:08 -05:00
45a1c7c75d
Added job count prompt escape code, '\j'
2026-02-25 01:56:24 -05:00
854e127545
Added PSR environment variable for drawing a string on the right side of the prompt
...
Pending normal mode sequences are now shown in the top right of the prompt
2026-02-25 01:13:12 -05:00
90e69f96d2
changed package name from 'fern' to 'shed'
2026-02-24 18:02:13 -05:00
fa49e2ef70
Fixed command substitutions not expanding when used as a command name
2026-02-23 23:32:12 -05:00
f8e02d31cd
- fixed 'I' command in normal mode not moving to exact start of line
...
- Added disown builtin
- Fixed job table not hanging up child processes on exit
- Added target architecture and os to --version output
- Added local builtin for creating variables scoped to functions
2026-02-23 16:10:49 -05:00
129390c2da
Implemented the exec builtin
...
Fixed readline and terminal interactions using stdin instead of /dev/tty
2026-02-20 12:17:48 -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
934c41714a
implemented nixos and home-manager nix modules for the flake
2026-02-19 17:30:21 -05:00
982d11f21b
implemented the trap builtin
2026-02-19 16:39:18 -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
af70266f6a
Some highlighter bug fixes
2026-02-18 11:29:16 -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
12f36283ca
fixed empty arguments being filtered out during word splitting
2026-02-16 19:09:10 -05:00
142194c100
migrated polling logic from virtterm branch to main
2026-02-16 18:28:57 -05:00
0e28b7bf49
Various edge case fixes for prompt expansion and command substitution
2026-01-29 04:58:04 -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
70f0e849ba
Fixed logic for EINTR propagation
2026-01-28 20:48:29 -05:00
7f3e1cfcee
renamed fern.rs back to main.rs
2026-01-28 19:57:14 -05:00
97b4b1835d
Progress
2025-03-15 00:02:05 -04:00
363e4805b7
Early work on tab completion
2025-03-09 21:59:12 -04:00
9b805c542c
Implemented cmd runtime expansion for the prompt
2025-03-09 03:51:49 -04:00
cdcfb23edb
Implemented scoping for expansions
2025-03-08 01:38:42 -05:00
11576e9e08
Various improvements
2025-03-07 03:36:25 -05:00
1b3e2c0887
Early implementation of scripting elements
2025-03-05 01:36:58 -05:00
5dd9ee96ad
Implemented functions and aliases
2025-03-02 22:49:36 -05:00