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 <aloucks@cofront.net>
This commit is contained in:
bors[bot] 2020-05-26 07:20:56 +00:00 committed by GitHub
commit dbb2c153ff
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 12 additions and 9 deletions

View file

@ -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);
}

View file

@ -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"],
);
}

View file

@ -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```""#)
}