From a047f10839d64813213c70ed60c37c0a99f232b2 Mon Sep 17 00:00:00 2001 From: Aaron Loucks Date: Mon, 25 May 2020 23:18:45 -0400 Subject: Hover tooltip module name is monospace once again The line separator is 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 --- crates/ra_ide/src/display.rs | 3 ++- crates/ra_ide/src/hover.rs | 16 +++++++++------- 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( if let Some(mod_path) = mod_path { if !mod_path.is_empty() { - format_to!(buf, "{}\n___\n\n", mod_path); + format_to!(buf, "```rust\n{}\n```\n\n", mod_path); } } format_to!(buf, "```rust\n{}\n```", code); if let Some(doc) = doc { + format_to!(buf, "\n___"); format_to!(buf, "\n\n{}", doc); } 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 { }; } "#, - &["Foo\n___\n\n```rust\nfield_a: u32"], + &["Foo\n```\n\n```rust\nfield_a: u32"], ); // Hovering over the field in the definition @@ -422,7 +422,7 @@ mod tests { }; } "#, - &["Foo\n___\n\n```rust\nfield_a: u32"], + &["Foo\n```\n\n```rust\nfield_a: u32"], ); } @@ -475,7 +475,7 @@ fn main() { ", ); let hover = analysis.hover(position).unwrap().unwrap(); - assert_eq!(trim_markup_opt(hover.info.first()), Some("Option\n___\n\n```rust\nSome")); + assert_eq!(trim_markup_opt(hover.info.first()), Some("Option\n```\n\n```rust\nSome")); let (analysis, position) = single_file_with_position( " @@ -503,11 +503,12 @@ fn main() { "#, &[" Option -___ +``` ```rust None ``` +___ The None variant " @@ -527,11 +528,12 @@ The None variant "#, &[" Option -___ +``` ```rust Some ``` +___ The Some variant " @@ -614,7 +616,7 @@ fn func(foo: i32) { if true { <|>foo; }; } let hover = analysis.hover(position).unwrap().unwrap(); assert_eq!( trim_markup_opt(hover.info.first()), - Some("wrapper::Thing\n___\n\n```rust\nfn new() -> Thing") + Some("wrapper::Thing\n```\n\n```rust\nfn new() -> Thing") ); } @@ -891,7 +893,7 @@ fn func(foo: i32) { if true { <|>foo; }; } fo<|>o(); } ", - &["fn foo()\n```\n\n<- `\u{3000}` here"], + &["fn foo()\n```\n___\n\n<- `\u{3000}` here"], ); } 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 { }); let value = res.get("contents").unwrap().get("value").unwrap().to_string(); - assert_eq!(value, r#""foo::Bar\n___\n\n```rust\nfn bar()\n```""#) + assert_eq!(value, r#""```rust\nfoo::Bar\n```\n\n```rust\nfn bar()\n```""#) } -- cgit v1.2.3