The new `extern` command allows you to describe all the type information for an external command to Nushell. With this, it can perform error checking, completions, syntax highlighting, and more.
You may also notice the `@` followed by the name of the completion function. This tells the completer what command to call to get a list of completions to use in that position, and you can down-select from these.
We've already seen early adopters starting to write their own completions for other commands, and we're excited to see what people will do.
# A new config file
With 0.60, we've moved away from the .toml style of config to a config built from a Nushell script. We've found this to be both more intuitive and much easier to work with.
When you first start up Nushell, you'll be asked if you'd like to create a default config file. This is a great way to see the new defaults and to change them to meet your needs. You'll also see some examples in how to modify the stylings, prompt, keybindings, and external completions.
# Table improvements
Tables can now be configured to show a footer with the column names.
Nushell will now also respect your `LS_COLORS` environment variable if set. If it's not set, Nushell will provide a default 8-bit setting so people with color terminal can see file types in different colors as seen below in the following screenshots.
# Language improvements
There's quite a list of changes to the language itself. Let's talk about each one to help you transition to the new Nushell:
## Escape characters in strings
With 0.60, Nushell now divides strings into two types: strings with escape characters and strings without. The escaping case is written with double-quotes (`"`) and the non-escaping case is written with single-quotes (`'`):
```
> "hello\nworld"
hello
world
> 'hello\nworld'
hello\nworld
```
Nushell will prefer the single-quotes for things like path names that include spaces, allowing you to naturally write paths for Windows as well.