4559: Module name on hover shows another newline after it r=matklad a=Arthamys

This changes the display of hover information to add a newline between the module path of the item and the signature of the item, as suggested in #3813 

**Before**

![before_3813](https://user-images.githubusercontent.com/11710698/82609224-5d517d80-9bbc-11ea-9a08-0a1558409c6b.png)

**After**

![after_3813](https://user-images.githubusercontent.com/11710698/82609208-562a6f80-9bbc-11ea-8cb6-4430269c5800.png)

Co-authored-by: Galilée 'Bill' Enguehard <galilee.enguehard@gmail.com>
This commit is contained in:
bors[bot] 2020-05-23 11:09:24 +00:00 committed by GitHub
commit 88c292b1c2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 17 additions and 8 deletions

View file

@ -79,14 +79,14 @@ pub(crate) fn rust_code_markup_with_doc(
doc: Option<&str>,
mod_path: Option<&str>,
) -> String {
let mut buf = "```rust\n".to_owned();
let mut buf = String::new();
if let Some(mod_path) = mod_path {
if !mod_path.is_empty() {
format_to!(buf, "{}\n", mod_path);
format_to!(buf, "{}\n___\n\n", mod_path);
}
}
format_to!(buf, "{}\n```", code);
format_to!(buf, "```rust\n{}\n```", code);
if let Some(doc) = doc {
format_to!(buf, "\n\n{}", doc);

View file

@ -405,7 +405,7 @@ mod tests {
};
}
"#,
&["Foo\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\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\nSome"));
assert_eq!(trim_markup_opt(hover.info.first()), Some("Option\n___\n\n```rust\nSome"));
let (analysis, position) = single_file_with_position(
"
@ -503,6 +503,9 @@ fn main() {
"#,
&["
Option
___
```rust
None
```
@ -524,6 +527,9 @@ The None variant
"#,
&["
Option
___
```rust
Some
```
@ -606,7 +612,10 @@ 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\nfn new() -> Thing"));
assert_eq!(
trim_markup_opt(hover.info.first()),
Some("wrapper::Thing\n___\n\n```rust\nfn new() -> Thing")
);
}
#[test]

View file

@ -774,5 +774,5 @@ pub fn foo(_input: TokenStream) -> TokenStream {
});
let value = res.get("contents").unwrap().get("value").unwrap().to_string();
assert_eq!(value, r#""```rust\nfoo::Bar\nfn bar()\n```""#)
assert_eq!(value, r#""foo::Bar\n___\n\n```rust\nfn bar()\n```""#)
}