-
Notifications
You must be signed in to change notification settings - Fork 1.6k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
add special emoji handling for debug --raw #11368
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the changes, I leaved one thought about formatting inner emoji value
crates/nu-protocol/src/value/mod.rs
Outdated
// This has to be an emoji, so let's display the code points that make it up. | ||
format!( | ||
"{:#?}", | ||
Value::test_string(val.escape_unicode().to_string()) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't think we need to create a new Value::test_string
, just val.escape_unicode().to_string()
should be fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I started with that but noticed that it needed to be a Value::String
and not just a String
. debug -r
uwraps our Value
s. So, I think it needs to be a Value::String
since val.escape_unicode().to_string()
does not return a nushell value.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
If I read that correctly with the derive(Debug)
on Value this would display the Span
as well so maybe worth reusing that from self
.
Good idea for debugging purposes @fdncred !
As value/mod.rs
is already really long I would prefer if the contains_emoji
logic for &str
would live in a dedicated function (possibly in nu-utils
).
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Let me know if the latest changes are more of what you are looking for.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks for the refactor! Looks good to me
# Description This PR add special handling in `debug -r` for emoji's so that it prints the code points. ### Before ```nushell ❯ emoji --list | where name =~ farmer | reject utf8_bytes | get 0.emoji | debug -r String { val: "🧑\u{200d}🌾", internal_span: Span { start: 0, end: 0, }, } ``` ### After ```nushell ❯ emoji --list | where name =~ farmer | reject utf8_bytes | get 0.emoji | debug -r String { val: "\\u{1f9d1}\\u{200d}\\u{1f33e}", internal_span: Span { start: 0, end: 0, }, } ``` # 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. -->
Description
This PR add special handling in
debug -r
for emoji's so that it prints the code points.Before
After
User-Facing Changes
Tests + Formatting
After Submitting