mirror of
https://github.com/rust-lang/rust-analyzer
synced 2024-12-27 05:23:24 +00:00
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
This commit is contained in:
parent
76fa498d6c
commit
a047f10839
3 changed files with 12 additions and 9 deletions
|
@ -83,12 +83,13 @@ pub(crate) fn rust_code_markup_with_doc(
|
||||||
|
|
||||||
if let Some(mod_path) = mod_path {
|
if let Some(mod_path) = mod_path {
|
||||||
if !mod_path.is_empty() {
|
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);
|
format_to!(buf, "```rust\n{}\n```", code);
|
||||||
|
|
||||||
if let Some(doc) = doc {
|
if let Some(doc) = doc {
|
||||||
|
format_to!(buf, "\n___");
|
||||||
format_to!(buf, "\n\n{}", doc);
|
format_to!(buf, "\n\n{}", doc);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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
|
// 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();
|
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(
|
let (analysis, position) = single_file_with_position(
|
||||||
"
|
"
|
||||||
|
@ -503,11 +503,12 @@ fn main() {
|
||||||
"#,
|
"#,
|
||||||
&["
|
&["
|
||||||
Option
|
Option
|
||||||
___
|
```
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
None
|
None
|
||||||
```
|
```
|
||||||
|
___
|
||||||
|
|
||||||
The None variant
|
The None variant
|
||||||
"
|
"
|
||||||
|
@ -527,11 +528,12 @@ The None variant
|
||||||
"#,
|
"#,
|
||||||
&["
|
&["
|
||||||
Option
|
Option
|
||||||
___
|
```
|
||||||
|
|
||||||
```rust
|
```rust
|
||||||
Some
|
Some
|
||||||
```
|
```
|
||||||
|
___
|
||||||
|
|
||||||
The Some variant
|
The Some variant
|
||||||
"
|
"
|
||||||
|
@ -614,7 +616,7 @@ fn func(foo: i32) { if true { <|>foo; }; }
|
||||||
let hover = analysis.hover(position).unwrap().unwrap();
|
let hover = analysis.hover(position).unwrap().unwrap();
|
||||||
assert_eq!(
|
assert_eq!(
|
||||||
trim_markup_opt(hover.info.first()),
|
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();
|
fo<|>o();
|
||||||
}
|
}
|
||||||
",
|
",
|
||||||
&["fn foo()\n```\n\n<- `\u{3000}` here"],
|
&["fn foo()\n```\n___\n\n<- `\u{3000}` here"],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -756,5 +756,5 @@ pub fn foo(_input: TokenStream) -> TokenStream {
|
||||||
});
|
});
|
||||||
|
|
||||||
let value = res.get("contents").unwrap().get("value").unwrap().to_string();
|
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```""#)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue