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

@@ -1,3 +0,0 @@
skip_welcome_message = true
filesize_format = "auto"
rm_always_trash = false

View File

@@ -0,0 +1,28 @@
let-env config = {
show_banner: false,
color_config: {
separator: { attr: n }
leading_trailing_space_bg: { attr: n }
header: { attr: n }
empty: { attr: n }
bool: { attr: n }
int: { attr: n }
filesize: { attr: n }
duration: { attr: n }
date: { attr: n }
range: { attr: n }
float: { attr: n }
string: { attr: n }
nothing: { attr: n }
binary: { attr: n }
cellpath: { attr: n }
row_index: { attr: n }
record: { attr: n }
list: { attr: n }
block: { attr: n }
hints: { attr: n }
},
ls: {
use_ls_colors: false
}
}

View File

@@ -1,3 +0,0 @@
skip_welcome_message = true
startup = ["def hello-world [] { echo 'Nu World' }"]

View File

@@ -8,7 +8,7 @@ fn source_file_relative_to_file() {
nu source_file_relative.nu
"#);
assert_eq!(actual.out, "5");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "5");
}
#[test]
@@ -28,7 +28,7 @@ fn run_nu_script_single_line() {
nu single_line.nu
"#);
assert_eq!(actual.out, "5");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "5");
}
#[test]
@@ -37,7 +37,7 @@ fn run_nu_script_multiline_start_pipe() {
nu multiline_start_pipe.nu
"#);
assert_eq!(actual.out, "4");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "4");
}
#[test]
@@ -46,7 +46,7 @@ fn run_nu_script_multiline_start_pipe_win() {
nu multiline_start_pipe_win.nu
"#);
assert_eq!(actual.out, "3");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "3");
}
#[test]
@@ -55,7 +55,7 @@ fn run_nu_script_multiline_end_pipe() {
nu multiline_end_pipe.nu
"#);
assert_eq!(actual.out, "2");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "2");
}
#[test]
@@ -64,7 +64,7 @@ fn run_nu_script_multiline_end_pipe_win() {
nu multiline_end_pipe_win.nu
"#);
assert_eq!(actual.out, "3");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "3");
}
#[test]

View File

@@ -125,7 +125,7 @@ fn has_file_pwd() {
let actual = nu!(cwd: dirs.test(), "nu spam.nu");
assert!(actual.out.ends_with("has_file_pwd"));
assert!(nu_utils::strip_ansi_string_likely(actual.out).ends_with("has_file_pwd"));
})
}

View File

@@ -329,7 +329,7 @@ mod nu_commands {
nu -c "echo 'foo'"
"#);
assert_eq!(actual.out, "foo");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "foo");
}
#[test]
@@ -340,7 +340,7 @@ mod nu_commands {
"#);
// cargo for non rust project's exit code is 101.
assert_eq!(actual.out, "101")
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "101")
})
}
@@ -387,7 +387,7 @@ mod nu_script {
nu script.nu
"#);
assert_eq!(actual.out, "done");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "done");
}
#[test]
@@ -396,7 +396,7 @@ mod nu_script {
nu script_multiline.nu
"#);
assert_eq!(actual.out, "23");
assert_eq!(nu_utils::strip_ansi_string_likely(actual.out), "23");
}
}