Unnamed repository; edit this file 'description' to name the repository.
handle autolink as edge case
Raymond Luo 2022-06-21
parent c6f776c · commit b7e3f52
-rw-r--r--crates/ide/src/doc_links.rs12
1 files changed, 10 insertions, 2 deletions
diff --git a/crates/ide/src/doc_links.rs b/crates/ide/src/doc_links.rs
index a78358f20f..993e12f4a3 100644
--- a/crates/ide/src/doc_links.rs
+++ b/crates/ide/src/doc_links.rs
@@ -382,13 +382,21 @@ fn map_links<'e>(
))
}
Event::Text(s) if in_link => {
- let (_, link_target_s, link_name) = callback(&end_link_target.take().unwrap(), &s);
+ let (link_type, link_target_s, link_name) =
+ callback(&end_link_target.take().unwrap(), &s);
end_link_target = Some(CowStr::Boxed(link_target_s.into()));
+ if !matches!(end_link_type, Some(link) if link == LinkType::Autolink) {
+ end_link_type = link_type;
+ }
Event::Text(CowStr::Boxed(link_name.into()))
}
Event::Code(s) if in_link => {
- let (_, link_target_s, link_name) = callback(&end_link_target.take().unwrap(), &s);
+ let (link_type, link_target_s, link_name) =
+ callback(&end_link_target.take().unwrap(), &s);
end_link_target = Some(CowStr::Boxed(link_target_s.into()));
+ if !matches!(end_link_type, Some(link) if link == LinkType::Autolink) {
+ end_link_type = link_type;
+ }
Event::Code(CowStr::Boxed(link_name.into()))
}
_ => evt,