Nushell can now complete record fields, cell paths in variables created in previous REPL runs, and more.
Starting with 0.62, Nushell will prefer to wrap filenames with spaces in backticks when completing. This allows for filenames to have single quotes, while also being compatible with upcoming improvements in filename handling.
# New commands
- [`watch`](https://github.com/nushell/nushell/pull/5331) can now watch a filepath and run a block if a change occurs (rgwood)
# Quality-of-life Improvements
- `ctrl+o` - opens your editor of choice to edit line input (elferherrera)
- Make sure to set `buffer_editor` in your configuration so Nushell can find your editor
- You can use `()` in create filenames. eg) `ls ./($dirname)` (sophiajt)
- Note: this currently only works if the `()` isn't the start of the filepath
- `ctrl+c` now breaks in more cases (gipsyh)
- `$nu.os-info` can give you information about the platform Nushell is running on. (fdncred)
- `~user` is now a known path shorthand (merelymyself)'
- Errors now have helpful descriptions that will show up in the error docs. (zkat)
- Nushell now has [better shell integration](https://github.com/nushell/nushell/pull/5162) for terminals like kitty. (schrieveslaach)
- **Note:** this is a shortened list. For the full list, see the "Changelog" section below
# Breaking changes
- `^=` is now `starts-with`
- config is now an environment variable
- To update, move `let config = ...` to `let-env config = ...`
- This change was done for performance reasons and gives considerable performance improvements in some use cases.
# Looking ahead
The `db` command joins the `dfr` command in a set of experiments we're working on to better understand how to integrate Nushell with a wider set of data sources. Coming up soon are "lazy dataframes". These, like the new `db` command, will allow you to build up a query against a dataframe before you execute it. This allows for much more efficient processing of the request against the data source.
The Nushell design team is deep in discussions about how to make this more universal, allowing the Nushell language to build up queries lazily against a data source, and allowing the data source to perform the optimal native query. There's more research to do here, but we're looking forward to being able to take what we've learned and grow the Nushell language. In the end, we hope, you won't need separate command sets for each data source type. Instead, you'll be able to connect and build your query all in the base Nushell language.
# Changelog
## Nushell
- sholderbach created [Pin reedline to v0.5.0 for the next release](https://github.com/nushell/nushell/pull/5427), and [Fix CI to run doctests again](https://github.com/nushell/nushell/pull/5410), and [Bump reedline](https://github.com/nushell/nushell/pull/5404), and [Set to reedline main branch for development cycle](https://github.com/nushell/nushell/pull/5249)
- elferherrera created [added open editor event in config parsing](https://github.com/nushell/nushell/pull/5426), and [Database commands](https://github.com/nushell/nushell/pull/5417), and [Line buffer keybinding](https://github.com/nushell/nushell/pull/5390), and [Line buffer editor](https://github.com/nushell/nushell/pull/5381), and [Database commands](https://github.com/nushell/nushell/pull/5343), and [Database commands](https://github.com/nushell/nushell/pull/5307)
- zhiburt created [Fix coloring when string has spaces](https://github.com/nushell/nushell/pull/5425)
- sophiajt created [Update path completions to handle spaces](https://github.com/nushell/nushell/pull/5419), and [Rename =^ to 'starts-with'](https://github.com/nushell/nushell/pull/5407), and [More escaping/unescaping fixes](https://github.com/nushell/nushell/pull/5403), and [Adds error printing back in a couple places](https://github.com/nushell/nushell/pull/5400), and [Add unescaping to external command parsing](https://github.com/nushell/nushell/pull/5399), and [Move uses of trim_quotes to unescape for filenames](https://github.com/nushell/nushell/pull/5398), and [Make if else more lazy](https://github.com/nushell/nushell/pull/5386), and [Fix 'range' range exclusive](https://github.com/nushell/nushell/pull/5334), and [Allow bare words to interpolate](https://github.com/nushell/nushell/pull/5327), and [Warn if we see let config = ..](https://github.com/nushell/nushell/pull/5318), and [Fix cd -](https://github.com/nushell/nushell/pull/5301), and [Add 'and' and 'or' operators](https://github.com/nushell/nushell/pull/5297), and [Use better quoting for commandline args](https://github.com/nushell/nushell/pull/5271), and [Some cleanups for clippy](https://github.com/nushell/nushell/pull/5266), and [move config back to config.nu](https://github.com/nushell/nushell/pull/5237), and [Move config to be an env var](https://github.com/nushell/nushell/pull/5230)