#[derive(Debug, Clone)]
pub enum HoverAction {
Runnable(Runnable),
- Implementaion(FilePosition),
+ Implementation(FilePosition),
GoToType(Vec<HoverGotoTypeData>),
}
};
if let Some(definition) = definition {
if let Some(markup) = hover_for_definition(db, definition) {
+ let markup = markup.as_str();
let markup = if !markdown {
- remove_markdown(&markup.as_str())
+ remove_markdown(markup)
} else if links_in_hover {
- rewrite_links(db, &markup.as_str(), &definition)
+ rewrite_links(db, markup, &definition)
} else {
- remove_links(&markup.as_str())
+ remove_links(markup)
};
res.markup = Markup::from(markup);
if let Some(action) = show_implementations_action(db, definition) {
fn show_implementations_action(db: &RootDatabase, def: Definition) -> Option<HoverAction> {
fn to_action(nav_target: NavigationTarget) -> HoverAction {
- HoverAction::Implementaion(FilePosition {
+ HoverAction::Implementation(FilePosition {
file_id: nav_target.file_id,
offset: nav_target.focus_or_full_range().start(),
})
r"unsafe trait foo<|>() {}",
expect![[r#"
[
- Implementaion(
+ Implementation(
FilePosition {
file_id: FileId(
0,
r#"trait foo<|>() {}"#,
expect![[r#"
[
- Implementaion(
+ Implementation(
FilePosition {
file_id: FileId(
0,
r"struct foo<|>() {}",
expect![[r#"
[
- Implementaion(
+ Implementation(
FilePosition {
file_id: FileId(
0,
r#"union foo<|>() {}"#,
expect![[r#"
[
- Implementaion(
+ Implementation(
FilePosition {
file_id: FileId(
0,
r"enum foo<|>() { A, B }",
expect![[r#"
[
- Implementaion(
+ Implementation(
FilePosition {
file_id: FileId(
0,
actions
.iter()
.filter_map(|it| match it {
- HoverAction::Implementaion(position) => show_impl_command_link(snap, position),
+ HoverAction::Implementation(position) => show_impl_command_link(snap, position),
HoverAction::Runnable(r) => runnable_action_links(snap, file_id, r.clone()),
HoverAction::GoToType(targets) => goto_type_action_links(snap, targets),
})