28ce008234
Various line editor fixes and optimizations
2026-02-25 15:43:08 -05:00
415c9b4a53
Fixed system messages printing an extra line for no reason
2026-02-25 02:10:57 -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
fee45145c8
flow control keywords are now highlighted purple
2026-02-24 16:22:59 -05:00
cd40760ea0
Refactored internals for builtins inside of pipelines
2026-02-24 10:54:24 -05:00
cf46303659
Ran the codebase through rustfmt
2026-02-23 23:32:46 -05:00
fa49e2ef70
Fixed command substitutions not expanding when used as a command name
2026-02-23 23:32:12 -05:00
06a55734c9
Fixed hint-related regression caused by recent history logic changes
2026-02-23 21:25:27 -05:00
46d6d5319f
Added auto-indent to multi-line editing -m Added shopt for enabling/disabling auto-indent -m Fixed some multi-line editing render bugs -m Scrolling up in history now preserves undo/redo history in the pending command
2026-02-23 20:52:33 -05:00
d9ff02b7a5
Fixed mutation of variables created by the local command
2026-02-23 19:04:31 -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
723bfd8413
- fixed 'I' command in normal mode not moving to exact start of line
2026-02-23 14:42:53 -05:00
5a8b7831a8
changed bell style option to a simple boolean
2026-02-23 14:11:41 -05:00
6f334395f7
line editor now sends bell on no-op edits
2026-02-20 14:15:25 -05:00
5721cdb7ca
Highlighter now handles highlighting visual mode selections instead of LineBuf
2026-02-20 14:03:42 -05:00
a0cf2a7edd
Cursor now moved to end of the line while scrolling history, original position in pending command still remembered -m Undo now moves the cursor to it's original position in normal mode
2026-02-20 12:33:18 -05:00
f0e1e6e2b5
visual mode deletions now properly yank deleted text into the selected register
2026-02-20 12:18:34 -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
e8473e82a1
arg underlining now only affects the last argument
2026-02-19 21:52:29 -05:00
886d348d53
fixed highlighting for double globs like 'dir/**/*.rs'
2026-02-19 21:43:49 -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
b668dab522
Fixed some weirdness in the logic for scrolling through command history
2026-02-19 20:12:51 -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
8cb8f20a35
Implemented completion for variable names
...
Fixed 'w' and 'b' motions in vi mode stopping on underscores
2026-02-19 10:13:04 -05:00
8354ad400d
added a bunch of tests
2026-02-18 23:54:25 -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
01684cf8e5
more highlighter tune-ups
2026-02-18 16:29:40 -05:00
af70266f6a
Some highlighter bug fixes
2026-02-18 11:29:16 -05:00
43b171fab1
Implemented syntax highlighting
2026-02-18 02:00:45 -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
142194c100
migrated polling logic from virtterm branch to main
2026-02-16 18:28:57 -05:00
d04dd4bc1e
Various bugfixes
2026-01-29 19:47:12 -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
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
23fb67aba8
implemented support for the 'sentence' text object in the line editor
2025-06-12 04:52:51 -04:00
dbeeff579d
Work on implementing more text objects
2025-06-12 03:15:52 -04:00
ff0207a27f
implemented quote/delimiter text objects
2025-06-09 02:29:34 -04:00
2c14e4c202
re-implemented command history and hinting
2025-06-08 01:53:13 -04:00
80eb8d278a
Improved logical accuracy of Ctrl+W in insert mode
...
Moved test libraries to dev-dependencies
Implemented some more motion types
Implemented ToLower, ToUpper, JoinLines, Indent, Undo, and Redo verbs
'O' and 'o' operators now behave correctly
Added many more unit tests for the readline module
2025-06-07 23:45:51 -04:00
3cfc49d638
finally found a good way to select line spans
2025-06-07 03:50:35 -04:00
4472478703
work on linewise logic
2025-06-06 23:24:10 -04:00
245fe53044
implemented some more editor tests
2025-06-05 03:33:08 -04:00
f57cf625ef
more work on re-implementing the readline module
2025-06-05 01:48:44 -04:00
2c6577ad06
copied rustyline's homework
2025-06-02 03:18:13 -04:00