]> git.lizzy.rs Git - rust.git/commitdiff
Add tooltip for important traits display
authorGuillaume Gomez <guillaume1.gomez@gmail.com>
Fri, 17 Nov 2017 23:32:12 +0000 (00:32 +0100)
committerGuillaume Gomez <guillaume1.gomez@gmail.com>
Sat, 18 Nov 2017 13:37:10 +0000 (14:37 +0100)
src/librustdoc/html/render.rs
src/librustdoc/html/static/main.js
src/librustdoc/html/static/rustdoc.css
src/test/rustdoc/doc-spotlight.rs

index 715855902711af8eea217535266be26068e13234..731b444300439a2f9546d6a227ce5ea4df6a3549 100644 (file)
@@ -3255,6 +3255,7 @@ fn render_spotlight_traits(item: &clean::Item) -> Result<String, fmt::Error> {
 
 fn spotlight_decl(decl: &clean::FnDecl) -> Result<String, fmt::Error> {
     let mut out = String::new();
+    let mut trait_ = String::new();
 
     if let Some(did) = decl.output.def_id() {
         let c = cache();
@@ -3265,9 +3266,10 @@ fn spotlight_decl(decl: &clean::FnDecl) -> Result<String, fmt::Error> {
                                         .map_or(false, |t| t.is_spotlight) {
                     if out.is_empty() {
                         out.push_str(
-                            &format!("<h3 class=\"important\">Important traits for {}</h3>",
+                            &format!("<h3 class=\"important\">Important traits for {}</h3>\
+                                      <code class=\"content\">",
                                      impl_.for_));
-                        out.push_str("<code class=\"content\">");
+                        trait_.push_str(&format!("{}", impl_.for_));
                     }
 
                     //use the "where" class here to make it small
@@ -3288,8 +3290,11 @@ fn spotlight_decl(decl: &clean::FnDecl) -> Result<String, fmt::Error> {
     }
 
     if !out.is_empty() {
-        out.insert_str(0, "<div class=\"important-traits\">ⓘ<div class=\"content hidden\">");
-        out.push_str("</code></span></div></div>");
+        out.insert_str(0, &format!("<div class=\"important-traits\"><div class='tooltip'>ⓘ\
+                                    <span class='tooltiptext'>Important traits for {}</span></div>\
+                                    <div class=\"content hidden\">",
+                                   trait_));
+        out.push_str("</code></div></div>");
     }
 
     Ok(out)
index c3f2ec253087dbcc66c022191b1d08b29297b5a1..51d6857d628a80dc8800f307f858b29682ed4843 100644 (file)
 
     onEach(document.getElementsByClassName('important-traits'), function(e) {
         e.onclick = function() {
-            showModal(e.firstElementChild.innerHTML);
+            showModal(e.lastElementChild.innerHTML);
         };
     });
 
index e14ba9881b6f1b7e6dc5391a32b2aa0f56529c1d..d7f4674908c5887b8104dbce10f1b5556bb29789 100644 (file)
@@ -958,6 +958,7 @@ pre.rust {
 
 .important-traits {
        cursor: pointer;
+       z-index: 2;
 }
 
 h4 > .important-traits {
index eb05b261fcc863e034e42fbcc1ff96512b42156d..a570aa2d3984f29a9cc803fa51153ffd98a90e4d 100644 (file)
@@ -19,7 +19,7 @@ impl<T: SomeTrait> SomeTrait for Wrapper<T> {}
 #[doc(spotlight)]
 pub trait SomeTrait {
     // @has doc_spotlight/trait.SomeTrait.html
-    // @has - '//code[@class="spotlight"]' 'impl<T: SomeTrait> SomeTrait for Wrapper<T>'
+    // @has - '//code[@class="content"]' 'impl<T: SomeTrait> SomeTrait for Wrapper<T>'
     fn wrap_me(self) -> Wrapper<Self> where Self: Sized {
         Wrapper {
             inner: self,
@@ -32,15 +32,15 @@ impl SomeTrait for SomeStruct {}
 
 impl SomeStruct {
     // @has doc_spotlight/struct.SomeStruct.html
-    // @has - '//code[@class="spotlight"]' 'impl SomeTrait for SomeStruct'
-    // @has - '//code[@class="spotlight"]' 'impl<T: SomeTrait> SomeTrait for Wrapper<T>'
+    // @has - '//code[@class="content"]' 'impl SomeTrait for SomeStruct'
+    // @has - '//code[@class="content"]' 'impl<T: SomeTrait> SomeTrait for Wrapper<T>'
     pub fn new() -> SomeStruct {
         SomeStruct
     }
 }
 
 // @has doc_spotlight/fn.bare_fn.html
-// @has - '//code[@class="spotlight"]' 'impl SomeTrait for SomeStruct'
+// @has - '//code[@class="content"]' 'impl SomeTrait for SomeStruct'
 pub fn bare_fn() -> SomeStruct {
     SomeStruct
 }