mirror of
https://github.com/nushell/nushell.git
synced 2024-11-22 00:13:21 +01:00
Nu source overview (#1282)
* add some notes into README for more elaboration * rewrite the overview * remove unused first line * add last part about tracing and debugging * change the wording to make it easier to read * Add example of metadata system * Add contact information as other helpful links
This commit is contained in:
parent
6da9e2aced
commit
23d11d5e84
30
crates/nu-source/README.md
Normal file
30
crates/nu-source/README.md
Normal file
@ -0,0 +1,30 @@
|
||||
# nu-source
|
||||
|
||||
## Overview
|
||||
|
||||
The `nu-source` crate contains types and traits used for keeping track of _metadata_ about values being processed.
|
||||
Nu uses `Tag`s to keep track of where a value came from, an `AnchorLocation`,
|
||||
as well as positional information about the value, a `Span`.
|
||||
An `AchorLocation` can be a `Url`, `File`, or `Source` text that a value was parsed from.
|
||||
The source `Text` is special in that it is a type similar to a `String` that comes with the ability to be cheaply cloned.
|
||||
A `Span` keeps track of a value's `start` and `end` positions.
|
||||
These types make up the metadata for a value and are wrapped up together in a `Tagged` struct,
|
||||
which holds everything needed to track and locate a value.
|
||||
|
||||
|
||||
Nu's metadata system can be seen when reporting errors.
|
||||
In the following example Nu is able to report to the user where the typo of a column originated from.
|
||||
|
||||
```
|
||||
1 | ls | get typ
|
||||
| ^^^ did you mean 'type'?
|
||||
```
|
||||
|
||||
In addition to metadata tracking, `nu-source` also contains types and traits related to debugging, tracing, and formatting the metadata and values it processes.
|
||||
|
||||
## Other Resources
|
||||
- [Nushell Github Project](https://github.com/nushell): Contains all projects in the Nushell ecosystem such as the source code to Nushell as well as website and books.
|
||||
- [Nushell Git Repository](https://github.com/nushell/nushell): A direct link to the source git repository for Nushell
|
||||
- [Nushell Contributor Book](https://github.com/nushell/contributor-book): An overview of topics about Nushell to help you get started contributing to the project.
|
||||
- [Discord Channel](https://discordapp.com/invite/NtAbbGn)
|
||||
- [Twitter](https://twitter.com/nu_shell)
|
Loading…
Reference in New Issue
Block a user