Releases: MrPicklePinosaur/shrs
Pre-release 0.0.6
Hey everyone π!
We are back once again for a release π! In 0.0.6 we have directed our attention in heavily overhauling the ergonomics of shrs. The most awesome improvement is the introduction of dependency injection to most of the API, including hooks, builtins, keybindings, prompt, and more. What this means for you is that instead of passing around a bunch of state structs, you can now query for exactly what state you need! See how this heavily simplifies your code below.
This first example shows the difference when writing a prompt. You no longer need to reach into line_ctx.ctx.state
and query for the specific state yourself. Just put desired state in the argument list and you get it right away! No more error handling either!
Similarly, see how writing builtins have become a breeze, with much less noise in the argument noise and no longer requiring implementing a Builtin
trait.
Finally, we have done a bunch of work on overhauling the docs with much more descriptive docstrings and code examples in each module! We hope this release has made writing your own shell using shrs that much more delightful.
See you around π«‘
- pinosaur
What's Changed
- DI Shell rework by @nithinmuthukumar in #442
- Refactor command timer by @MrPicklePinosaur in #443
- Refactor mux plugin to use dependency injection by @MrPicklePinosaur in #444
- Nithin/keybinding di by @nithinmuthukumar in #445
- Porting rest of builtins by @nithinmuthukumar in #446
- Nithin/history move by @nithinmuthukumar in #453
- Update example to use FileBackedHistoryPlugin by @morbidbark in #456
- Nithin/hooks in core by @nithinmuthukumar in #454
- Fix example compilation issues by @nithinmuthukumar in #457
- Fix AutocdPlugin by @morbidbark in #458
- remove errors in example bins by @nithinmuthukumar in #459
- Option param by @nithinmuthukumar in #461
- Nithin/state docs by @nithinmuthukumar in #462
- Nithin/docs by @nithinmuthukumar in #467
- Nithin/import refactor by @nithinmuthukumar in #468
- readline docs by @nithinmuthukumar in #469
New Contributors
- @morbidbark made their first contribution in #456
Full Changelog: 0.0.5...0.0.6
Pre-release 0.0.5
Hey everyone π ! It's been a while but we are back with the 0.0.5 pre-release of shrs π ! In this release we have seen a couple of exciting new features to speed up your workflow in the shell!
Firstly, we now support rhai for writing completion scripts via the shrs_rhai_completion plugin. Leveraging this functionality, we now provide automatically generated completion scripts for a large number of common programs!
Next, shrs now has command suggestions as you type, allowing you to quickly re-run relevant commands from history.
Finally, we have introduced the concepts of snippets - automatically expanding text triggered by a keyword. This can be used to abbreviate long words or type out boilerplate.
Coming up in the next release will be a rewrite of the shell language to make it more feature complete as well as further experimental features for mux! Until then!
- pinosaur
What's Changed
- rhai completions by @nithinmuthukumar in #391
- Update README.md by @nithinmuthukumar in #393
- Adding to Runtime and config by @nithinmuthukumar in #395
- Nithin/crate merge by @nithinmuthukumar in #404
- Nithin/plugin help meta by @nithinmuthukumar in #405
- Nithin/plugin help meta by @nithinmuthukumar in #409
- SHRS-408: Add "help plugin " and help field to PluginMeta by @rithikasilva in #410
- Expose LineCtx to keybindings by @MrPicklePinosaur in #416
- Extract LineCtx into its own struct by @MrPicklePinosaur in #417
- Type builtin command by @AryanAb in #361
- Nithin/remove history item by @nithinmuthukumar in #419
- if statement to limit switch if the mode is already correct by @nithinmuthukumar in #421
- Suggestion feature by @nithinmuthukumar in #403
- Adding sleep to prevent busy waiting by @nithinmuthukumar in #423
- change to millis by @nithinmuthukumar in #426
- Nithin/snippets by @nithinmuthukumar in #425
- Nithin/mux color output by @nithinmuthukumar in #428
- manpages plugin by @MrPicklePinosaur in #401
- Removing warnings by @nithinmuthukumar in #434
- fixing color bug by @nithinmuthukumar in #438
- bump version to 0.0.5 by @MrPicklePinosaur in #437
Full Changelog: 0.0.4...0.0.5
Pre-release 0.0.4
With the 0.0.4 pre-release, we are celebrating shrs's first birthday π₯³ ! This project was started on February 2nd, one year ago, and we have came a long way since then (just look at the main.rs from one year ago). Thanks for all the continuous support from the contributors and the community, and I am excited to see how this project will grow :D
In this release, we saw many exciting improvements to our mux system! Mux languages are now spawned as their own process in order to maintain context, and we have introduced support for python, ssh and sqlite to be ran inside of shrs! Other notable changes include:
- Globbing
- Theming system
- More vi mode commands
- Experimental rhai scripting support via
shrs_rhai
plugin - Styled macro improvements
- History builtin
- ... and a ton of refactoring and bug fixes
Stay tuned for 0.0.5 release next month π
What's Changed
- Nithin/git utils by @nithinmuthukumar in #322
- rhai scripting by @MrPicklePinosaur in #323
- post init for plugins by @MrPicklePinosaur in #326
- Return error code 127 for command not found by @MrPicklePinosaur in #333
- call registered rhai functions from shell by @MrPicklePinosaur in #325
- Make LineCtx immutable, expose cursorbuffer by @nithinmuthukumar in #335
- flush print_buf by @nithinmuthukumar in #337
- Make SyntaxTheme a trait, simplify highlighting by @nithinmuthukumar in #338
- Nithin/theme by @nithinmuthukumar in #334
- add methods to style buf by @nithinmuthukumar in #340
- Adding apply style func by @nithinmuthukumar in #342
- Add check if not on bottom of terminal by @nithinmuthukumar in #345
- Blog in documentation website by @AryanAb in #318
- #344: Add cd ~ to builtin by @rithikasilva in #348
- vi mode open line in editor by @MrPicklePinosaur in #351
- Adding stylize methods, removing colors from theme by @nithinmuthukumar in #352
- Changing Color to ContentStyle, using style to edit completion style by @nithinmuthukumar in #360
- prompt content queue by @nithinmuthukumar in #359
- Mux refactor by @MrPicklePinosaur in #362
- Implement History Builtin for #273 by @rithikasilva in #324
- spawn task for read and write to lang process by @MrPicklePinosaur in #365
- ssh mux lang by @MrPicklePinosaur in #371
- Lazy load muxlang from builtin by @MrPicklePinosaur in #376
- Adding support for globbing and tilda expansion as well as quotes by @nithinmuthukumar in #377
- Nithin/globbing tilda by @nithinmuthukumar in #378
- sqlite lang by @MrPicklePinosaur in #381
- Nithin/docs by @nithinmuthukumar in #384
- adding line cancel by @nithinmuthukumar in #385
New Contributors
- @rithikasilva made their first contribution in #348
Full Changelog: 0.0.3...0.0.4
Pre-release 0.0.3
New pre-release for shrs just dropped! This release focused on many ergonomic changes and polishing up old features. Notably
- Restored shrs as the default shell language, fixing many issues with broken interactive commands
- Completion menu visual improvements
- More completions (like for ssh)
- Multiline prompts
- Analytics plugin prototype
- Improvements to builtins like history and help
- Lots of bug fixes!
What's Changed
- Builtin Outputs by @nithinmuthukumar in #249
- Add keybinds by @locustbaby in #271
- check and canonicalize path before setting it as working dir by @ashwinvin in #274
- making output state public for use in other plugins by @nithinmuthukumar in #280
- bugfix-twicerules by @locustbaby in #279
- Fix misc bugs by @ashwinvin in #277
- capture command as well by @nithinmuthukumar in #281
- completion utilities plugin by @MrPicklePinosaur in #282
- Multiline Prompts by @nithinmuthukumar in #287
- Nithin/docs by @nithinmuthukumar in #293
- Fixed #288 by fixing the bounds check by @Kyllingene in #294
- analytics plugin by @MrPicklePinosaur in #254
- insert plugin struct into state on init by @MrPicklePinosaur in #298
- refactor: move history from shrs_line to shrs_core by @MrPicklePinosaur in #300
- Restore old shrs lang by @MrPicklePinosaur in #301
- Move keybindings from shrs_line to shrs_core by @MrPicklePinosaur in #307
- Dedicated field for installed plugins by @MrPicklePinosaur in #308
- Moving StyledBuf by @nithinmuthukumar in #312
- nithin/move style buf by @nithinmuthukumar in #313
- changing register to hook by @nithinmuthukumar in #314
- Help builtin command list out keybindings by @AryanAb in #309
- Fix Clippy lints by @lthoerner in #317
- Nithin/git utils by @nithinmuthukumar in #322
New Contributors
- @locustbaby made their first contribution in #271
- @ashwinvin made their first contribution in #274
- @Kyllingene made their first contribution in #294
- @AryanAb made their first contribution in #309
- @lthoerner made their first contribution in #317
Full Changelog: 0.0.2...0.0.3
Pre-release 0.0.2
Hey all! Pre-release version 0.0.2 of shrs: the rusty shell toolkit has just been released π ! shrs is not just a shell written in Rust, it is a library for you to build your own command line shell. Here are some exciting new features that can be found in this release:
- Run contexts: save and restore your execution environment
- Dynamic aliases: change the definition of alias depending on which directory you are in
- Project/workspace parsing: enables the abilitiy to create prompts like starship
- Serde support: enables abilitiy to parse options from config files
What's Changed
- Adding cursor buffer utilities by @nithinmuthukumar in #192
- Refactor environment variables by @MrPicklePinosaur in #195
- (master) add better metadata and readme for plugins by @MrPicklePinosaur in #196
- Add case change with motion by @5c077m4n in #198
- Pass context to keybinding functions by @MrPicklePinosaur in #200
- Nithin/highlight multiline abstract by @nithinmuthukumar in #199
- Cd Stack Plugin by @MrPicklePinosaur in #197
- Project directory metadata parsing by @MrPicklePinosaur in #204
- Move Insulter to https://github.com/nithinmuthukumar/shrs_insulter by @nithinmuthukumar in #206
- small fix by @nithinmuthukumar in #207
- Directory parse for rust projects by @MrPicklePinosaur in #205
- File Logger Plugin by @MrPicklePinosaur in #215
- serde support by @MrPicklePinosaur in #219
- Failable plugins by @MrPicklePinosaur in #221
- Save run contexts to file by @MrPicklePinosaur in #220
- tab expand escape spaces by @MrPicklePinosaur in #225
- daniel/completion common prefix by @MrPicklePinosaur in #227
- fix typos by @not-my-profile in #232
- move shrs crate to crates/shrs by @not-my-profile in #234
- more powerful filesystem metadata queries by @MrPicklePinosaur in #239
- Autocd Plugin by @MrPicklePinosaur in #216
- Nithin/return_output_from_eval by @nithinmuthukumar in #245
- Persistent bash by @nithinmuthukumar in #248
- Migrate shrs to its own organization' by @MrPicklePinosaur in #255
- bump workspace to v0.0.2 by @MrPicklePinosaur in #257
- add favicon and banner to docs by @MrPicklePinosaur in #259
- Merge Lang Options into mux by @nithinmuthukumar in #263
- OutputWriter stub by @nithinmuthukumar in #264
- update env and wd in bash by @nithinmuthukumar in #268
New Contributors
- @not-my-profile made their first contribution in #232
Full Changelog: 0.0.1...0.0.2
Pre-release 0.0.1
π This is the first pre-release of shrs: the rusty POSIX shell. Please keep in mind that the core is still in active development and breaking changes to the API are frequent and common. If you encounter any issues or have any feature requests, don't be shy to leave an issue!
You can start using shrs in your project today:
shrs = { version = "0.0.1" }
New Contributors
- @nithinmuthukumar made their first contribution in #106
- @kishooore made their first contribution in #162
- @geekylthyosaur made their first contribution in #182
- @5c077m4n made their first contribution in #183
Full Changelog: https://github.com/MrPicklePinosaur/shrs/commits/0.0.1