Move Value to helpers, separate span call (#10121)

# Description

As part of the refactor to split spans off of Value, this moves to using
helper functions to create values, and using `.span()` instead of
matching span out of Value directly.

Hoping to get a few more helping hands to finish this, as there are a
lot of commands to update :)

# User-Facing Changes
<!-- List of all changes that impact the user experience here. This
helps us keep track of breaking changes. -->

# Tests + Formatting
<!--
Don't forget to add tests that cover your changes.

Make sure you've run and fixed any issues with these commands:

- `cargo fmt --all -- --check` to check standard code formatting (`cargo
fmt --all` applies these changes)
- `cargo clippy --workspace -- -D warnings -D clippy::unwrap_used` to
check that you're using the standard code style
- `cargo test --workspace` to check that all tests pass (on Windows make
sure to [enable developer
mode](https://learn.microsoft.com/en-us/windows/apps/get-started/developer-mode-features-and-debugging))
- `cargo run -- -c "use std testing; testing run-tests --path
crates/nu-std"` to run the tests for the standard library

> **Note**
> from `nushell` you can also use the `toolkit` as follows
> ```bash
> use toolkit.nu # or use an `env_change` hook to activate it
automatically
> toolkit check pr
> ```
-->

# After Submitting
<!-- If your PR had any user-facing changes, update [the
documentation](https://github.com/nushell/nushell.github.io) after the
PR is merged, if necessary. This will help us keep the docs up to date.
-->

---------

Co-authored-by: Darren Schroeder <343840+fdncred@users.noreply.github.com>
Co-authored-by: WindSoilder <windsoilder@outlook.com>
This commit is contained in:
JT
2023-09-04 02:27:29 +12:00
committed by GitHub
parent af79eb2943
commit 6cdfee3573
372 changed files with 5811 additions and 7448 deletions

View File

@ -403,9 +403,10 @@ fn expand_table_value(
return Ok(Some((value_to_string_clean(value, cfg), false)));
}
let span = value.span();
match value {
Value::List { vals, span } => {
let mut inner_cfg = dive_options(cfg, *span);
Value::List { vals, .. } => {
let mut inner_cfg = dive_options(cfg, span);
inner_cfg.opts.width = value_width;
let table = expanded_table_list(vals, inner_cfg)?;
@ -427,7 +428,7 @@ fn expand_table_value(
}
}
}
Value::Record { val: record, span } => {
Value::Record { val: record, .. } => {
if record.is_empty() {
// Like list case return styled string instead of empty value
return Ok(Some((
@ -436,7 +437,7 @@ fn expand_table_value(
)));
}
let mut inner_cfg = dive_options(cfg, *span);
let mut inner_cfg = dive_options(cfg, span);
inner_cfg.opts.width = value_width;
let result = expanded_table_kv(record, inner_cfg)?;
match result {
@ -484,14 +485,15 @@ fn expanded_table_entry2(item: &Value, cfg: Cfg<'_>) -> NuText {
return nu_value_to_string_clean(item, cfg.opts.config, cfg.opts.style_computer);
}
let span = item.span();
match &item {
Value::Record { val: record, span } => {
Value::Record { val: record, .. } => {
if record.is_empty() {
return nu_value_to_string(item, cfg.opts.config, cfg.opts.style_computer);
}
// we verify what is the structure of a Record cause it might represent
let inner_cfg = dive_options(&cfg, *span);
let inner_cfg = dive_options(&cfg, span);
let table = expanded_table_kv(record, inner_cfg);
match table {
@ -499,7 +501,7 @@ fn expanded_table_entry2(item: &Value, cfg: Cfg<'_>) -> NuText {
_ => nu_value_to_string(item, cfg.opts.config, cfg.opts.style_computer),
}
}
Value::List { vals, span } => {
Value::List { vals, .. } => {
if cfg.format.flatten && is_simple_list(vals) {
return value_list_to_string(
vals,
@ -509,7 +511,7 @@ fn expanded_table_entry2(item: &Value, cfg: Cfg<'_>) -> NuText {
);
}
let inner_cfg = dive_options(&cfg, *span);
let inner_cfg = dive_options(&cfg, span);
let table = expanded_table_list(vals, inner_cfg);
let out = match table {