Skip to content

Commit b4f865a

Browse files
authored
Merge pull request rust-lang#18820 from dfireBird/fix-space-char-on-literal-render
Fix no space insert before and after if value is only spaces
2 parents bd33815 + ac9e280 commit b4f865a

File tree

2 files changed

+38
-2
lines changed

2 files changed

+38
-2
lines changed

src/tools/rust-analyzer/crates/ide/src/hover/render.rs

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -716,16 +716,21 @@ pub(super) fn literal(
716716
match value {
717717
Ok(value) => {
718718
let backtick_len = value.chars().filter(|c| *c == '`').count();
719+
let spaces_len = value.chars().filter(|c| *c == ' ').count();
719720
let backticks = "`".repeat(backtick_len + 1);
721+
let space_char = if spaces_len == value.len() { "" } else { " " };
720722

721723
if let Some(newline) = value.find('\n') {
722724
format_to!(
723725
s,
724-
"value of literal (truncated up to newline): {backticks} {} {backticks}",
726+
"value of literal (truncated up to newline): {backticks}{space_char}{}{space_char}{backticks}",
725727
&value[..newline]
726728
)
727729
} else {
728-
format_to!(s, "value of literal: {backticks} {value} {backticks}")
730+
format_to!(
731+
s,
732+
"value of literal: {backticks}{space_char}{value}{space_char}{backticks}"
733+
)
729734
}
730735
}
731736
Err(error) => format_to!(s, "invalid literal: {error}"),

src/tools/rust-analyzer/crates/ide/src/hover/tests.rs

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -8303,6 +8303,37 @@ fn main() {
83038303
value of literal: `` ` ``
83048304
"#]],
83058305
);
8306+
check(
8307+
r#"
8308+
fn main() {
8309+
$0r" ";
8310+
}"#,
8311+
expect![[r#"
8312+
*r" "*
8313+
```rust
8314+
&str
8315+
```
8316+
___
8317+
8318+
value of literal: ` `
8319+
"#]],
8320+
);
8321+
check(
8322+
r#"
8323+
fn main() {
8324+
$0r" Hello World ";
8325+
8326+
}"#,
8327+
expect![[r#"
8328+
*r" Hello World "*
8329+
```rust
8330+
&str
8331+
```
8332+
___
8333+
8334+
value of literal: ` Hello World `
8335+
"#]],
8336+
)
83068337
}
83078338

83088339
#[test]

0 commit comments

Comments
 (0)