Primitives now use color closures when printed on the command line (#7650)

# Description

Closes #7554


![image](https://user-images.githubusercontent.com/83939/210177700-4890fcf2-1be9-4da9-9974-58d4ed403430.png)

# User-Facing Changes

See above.

# 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 -A
clippy::needless_collect` to check that you're using the standard code
style
- `cargo test --workspace` to check that all tests pass

# 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: Reilly Wood <26268125+rgwood@users.noreply.github.com>
This commit is contained in:
Leon
2023-01-04 17:59:10 +10:00
committed by GitHub
parent 95d4922e44
commit c5639cd9fa
10 changed files with 104 additions and 27 deletions

View File

@ -348,7 +348,22 @@ fn handle_table_command(
ctrlc,
metadata,
),
x => Ok(x),
PipelineData::Value(v, ..) => {
// into_string() is used for serialising primitives in PipelineData::write_all_and_flush(),
// so the same is used here.
let str_representation = v.into_string("", config);
Ok(Value::String {
val: StyleComputer::from_config(engine_state, stack)
.style_primitive(&v)
.color_style
.map(|e| e.paint(&str_representation).to_string())
.unwrap_or(str_representation),
span: call.head,
}
.into_pipeline_data())
}
PipelineData::Empty {} => Ok(input),
}
}