diff options
author | bors[bot] <26634292+bors[bot]@users.noreply.github.com> | 2020-05-26 08:20:56 +0100 |
---|---|---|
committer | GitHub <[email protected]> | 2020-05-26 08:20:56 +0100 |
commit | dbb2c153ffad541474f2e5c7c7bd7ea93cf68f5f (patch) | |
tree | 7a79d631ba9ed42ad0d6a1133c54976a65c82760 | |
parent | 76fa498d6c69a8c26f074b15178256041bb53675 (diff) | |
parent | a047f10839d64813213c70ed60c37c0a99f232b2 (diff) |
Merge #4617
4617: Hover tooltip module name is monospace once again r=matklad a=aloucks
The line separator is also moved below the function signature to split regions between the docs. This is very similar to how IntelliJ displays tooltips. Adding an additional separator between the module name and function signature currently has rendering issues.
Fixes #4594
Alternative to #4615
@kjeremy @Veetaha
Note that I have semantic coloring disabled so ignore any differences due to that.
![image](https://user-images.githubusercontent.com/221559/82857507-30180e80-9edf-11ea-903a-f25c60055a93.png)
![image](https://user-images.githubusercontent.com/221559/82857407-e6c7bf00-9ede-11ea-9ae0-d348279552e7.png)
Co-authored-by: Aaron Loucks <[email protected]>
-rw-r--r-- | crates/ra_ide/src/display.rs | 3 | ||||
-rw-r--r-- | crates/ra_ide/src/hover.rs | 16 | ||||
-rw-r--r-- | crates/rust-analyzer/tests/heavy_tests/main.rs | 2 |
3 files changed, 12 insertions, 9 deletions
diff --git a/crates/ra_ide/src/display.rs b/crates/ra_ide/src/display.rs index 8bb312156..827c094e7 100644 --- a/crates/ra_ide/src/display.rs +++ b/crates/ra_ide/src/display.rs | |||
@@ -83,12 +83,13 @@ pub(crate) fn rust_code_markup_with_doc( | |||
83 | 83 | ||
84 | if let Some(mod_path) = mod_path { | 84 | if let Some(mod_path) = mod_path { |
85 | if !mod_path.is_empty() { | 85 | if !mod_path.is_empty() { |
86 | format_to!(buf, "{}\n___\n\n", mod_path); | 86 | format_to!(buf, "```rust\n{}\n```\n\n", mod_path); |
87 | } | 87 | } |
88 | } | 88 | } |
89 | format_to!(buf, "```rust\n{}\n```", code); | 89 | format_to!(buf, "```rust\n{}\n```", code); |
90 | 90 | ||
91 | if let Some(doc) = doc { | 91 | if let Some(doc) = doc { |
92 | format_to!(buf, "\n___"); | ||
92 | format_to!(buf, "\n\n{}", doc); | 93 | format_to!(buf, "\n\n{}", doc); |
93 | } | 94 | } |
94 | 95 | ||
diff --git a/crates/ra_ide/src/hover.rs b/crates/ra_ide/src/hover.rs index 1f4f6b848..3e721dcca 100644 --- a/crates/ra_ide/src/hover.rs +++ b/crates/ra_ide/src/hover.rs | |||
@@ -405,7 +405,7 @@ mod tests { | |||
405 | }; | 405 | }; |
406 | } | 406 | } |
407 | "#, | 407 | "#, |
408 | &["Foo\n___\n\n```rust\nfield_a: u32"], | 408 | &["Foo\n```\n\n```rust\nfield_a: u32"], |
409 | ); | 409 | ); |
410 | 410 | ||
411 | // Hovering over the field in the definition | 411 | // Hovering over the field in the definition |
@@ -422,7 +422,7 @@ mod tests { | |||
422 | }; | 422 | }; |
423 | } | 423 | } |
424 | "#, | 424 | "#, |
425 | &["Foo\n___\n\n```rust\nfield_a: u32"], | 425 | &["Foo\n```\n\n```rust\nfield_a: u32"], |
426 | ); | 426 | ); |
427 | } | 427 | } |
428 | 428 | ||
@@ -475,7 +475,7 @@ fn main() { | |||
475 | ", | 475 | ", |
476 | ); | 476 | ); |
477 | let hover = analysis.hover(position).unwrap().unwrap(); | 477 | let hover = analysis.hover(position).unwrap().unwrap(); |
478 | assert_eq!(trim_markup_opt(hover.info.first()), Some("Option\n___\n\n```rust\nSome")); | 478 | assert_eq!(trim_markup_opt(hover.info.first()), Some("Option\n```\n\n```rust\nSome")); |
479 | 479 | ||
480 | let (analysis, position) = single_file_with_position( | 480 | let (analysis, position) = single_file_with_position( |
481 | " | 481 | " |
@@ -503,11 +503,12 @@ fn main() { | |||
503 | "#, | 503 | "#, |
504 | &[" | 504 | &[" |
505 | Option | 505 | Option |
506 | ___ | 506 | ``` |
507 | 507 | ||
508 | ```rust | 508 | ```rust |
509 | None | 509 | None |
510 | ``` | 510 | ``` |
511 | ___ | ||
511 | 512 | ||
512 | The None variant | 513 | The None variant |
513 | " | 514 | " |
@@ -527,11 +528,12 @@ The None variant | |||
527 | "#, | 528 | "#, |
528 | &[" | 529 | &[" |
529 | Option | 530 | Option |
530 | ___ | 531 | ``` |
531 | 532 | ||
532 | ```rust | 533 | ```rust |
533 | Some | 534 | Some |
534 | ``` | 535 | ``` |
536 | ___ | ||
535 | 537 | ||
536 | The Some variant | 538 | The Some variant |
537 | " | 539 | " |
@@ -614,7 +616,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
614 | let hover = analysis.hover(position).unwrap().unwrap(); | 616 | let hover = analysis.hover(position).unwrap().unwrap(); |
615 | assert_eq!( | 617 | assert_eq!( |
616 | trim_markup_opt(hover.info.first()), | 618 | trim_markup_opt(hover.info.first()), |
617 | Some("wrapper::Thing\n___\n\n```rust\nfn new() -> Thing") | 619 | Some("wrapper::Thing\n```\n\n```rust\nfn new() -> Thing") |
618 | ); | 620 | ); |
619 | } | 621 | } |
620 | 622 | ||
@@ -891,7 +893,7 @@ fn func(foo: i32) { if true { <|>foo; }; } | |||
891 | fo<|>o(); | 893 | fo<|>o(); |
892 | } | 894 | } |
893 | ", | 895 | ", |
894 | &["fn foo()\n```\n\n<- `\u{3000}` here"], | 896 | &["fn foo()\n```\n___\n\n<- `\u{3000}` here"], |
895 | ); | 897 | ); |
896 | } | 898 | } |
897 | 899 | ||
diff --git a/crates/rust-analyzer/tests/heavy_tests/main.rs b/crates/rust-analyzer/tests/heavy_tests/main.rs index b1bfc968a..405ddb362 100644 --- a/crates/rust-analyzer/tests/heavy_tests/main.rs +++ b/crates/rust-analyzer/tests/heavy_tests/main.rs | |||
@@ -756,5 +756,5 @@ pub fn foo(_input: TokenStream) -> TokenStream { | |||
756 | }); | 756 | }); |
757 | 757 | ||
758 | let value = res.get("contents").unwrap().get("value").unwrap().to_string(); | 758 | let value = res.get("contents").unwrap().get("value").unwrap().to_string(); |
759 | assert_eq!(value, r#""foo::Bar\n___\n\n```rust\nfn bar()\n```""#) | 759 | assert_eq!(value, r#""```rust\nfoo::Bar\n```\n\n```rust\nfn bar()\n```""#) |
760 | } | 760 | } |