diff options
| author | François Mockers <mockersf@gmail.com> | 2021-03-11 03:32:30 +0100 |
|---|---|---|
| committer | François Mockers <mockersf@gmail.com> | 2021-04-13 22:10:19 +0200 |
| commit | 45964368f4a2e31c94e9bcf1cef933c087d21544 (patch) | |
| tree | afdd3196820f9dc6c434a47900e913a7d5afc637 /src/librustdoc/html/render | |
| parent | e1b6bb214fbc9d2a9af5c029679822e90dfd9660 (diff) | |
| download | rust-45964368f4a2e31c94e9bcf1cef933c087d21544.tar.gz rust-45964368f4a2e31c94e9bcf1cef933c087d21544.zip | |
add anchors links on hover to items from trait impl
Diffstat (limited to 'src/librustdoc/html/render')
| -rw-r--r-- | src/librustdoc/html/render/mod.rs | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/src/librustdoc/html/render/mod.rs b/src/librustdoc/html/render/mod.rs index a95cfc11367..9f9a3acd852 100644 --- a/src/librustdoc/html/render/mod.rs +++ b/src/librustdoc/html/render/mod.rs @@ -1453,12 +1453,13 @@ fn render_impl( } else { (true, " hidden") }; + let in_trait_class = if trait_.is_some() { " trait-impl" } else { "" }; match *item.kind { clean::MethodItem(..) | clean::TyMethodItem(_) => { // Only render when the method is not static or we allow static methods if render_method_item { let id = cx.derive_id(format!("{}.{}", item_type, name)); - write!(w, "<h4 id=\"{}\" class=\"{}{}\">", id, item_type, extra_class); + write!(w, "<h4 id=\"{}\" class=\"{}{}{}\">", id, item_type, extra_class, in_trait_class); w.write_str("<code>"); render_assoc_item(w, item, link.anchor(&id), ItemType::Impl, cx); w.write_str("</code>"); @@ -1469,13 +1470,14 @@ fn render_impl( outer_version, outer_const_version, ); + write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id); write_srclink(cx, item, w); w.write_str("</h4>"); } } clean::TypedefItem(ref tydef, _) => { let id = cx.derive_id(format!("{}.{}", ItemType::AssocType, name)); - write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, extra_class); + write!(w, "<h4 id=\"{}\" class=\"{}{}{}\"><code>", id, item_type, extra_class, in_trait_class); assoc_type( w, item, @@ -1486,11 +1488,13 @@ fn render_impl( cx.cache(), tcx, ); - w.write_str("</code></h4>"); + w.write_str("</code>"); + write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id); + w.write_str("</h4>"); } clean::AssocConstItem(ref ty, ref default) => { let id = cx.derive_id(format!("{}.{}", item_type, name)); - write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, extra_class); + write!(w, "<h4 id=\"{}\" class=\"{}{}{}\"><code>", id, item_type, extra_class, in_trait_class); assoc_const(w, item, ty, default.as_ref(), link.anchor(&id), "", cx); w.write_str("</code>"); render_stability_since_raw( @@ -1500,12 +1504,13 @@ fn render_impl( outer_version, outer_const_version, ); + write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id); write_srclink(cx, item, w); w.write_str("</h4>"); } clean::AssocTypeItem(ref bounds, ref default) => { let id = cx.derive_id(format!("{}.{}", item_type, name)); - write!(w, "<h4 id=\"{}\" class=\"{}{}\"><code>", id, item_type, extra_class); + write!(w, "<h4 id=\"{}\" class=\"{}{}{}\"><code>", id, item_type, extra_class, in_trait_class); assoc_type( w, item, @@ -1516,7 +1521,9 @@ fn render_impl( cx.cache(), tcx, ); - w.write_str("</code></h4>"); + w.write_str("</code>"); + write!(w, "<a href=\"#{}\" class=\"anchor\"></a>", id); + w.write_str("</h4>"); } clean::StrippedItem(..) => return, _ => panic!("can't make docs for trait item with name {:?}", item.name), |
