Skip to content

Commit d5ecf70

Browse files
committed
Auto merge of #50259 - GuillaumeGomez:improve-results, r=ollie27
Rustdoc improvements Fixes #50658. (last commit) A lot of small improvements. r? @QuietMisdreavus
2 parents d711dc9 + f0db2cf commit d5ecf70

File tree

6 files changed

+161
-75
lines changed

6 files changed

+161
-75
lines changed

src/librustdoc/html/render.rs

+30-8
Original file line numberDiff line numberDiff line change
@@ -413,9 +413,9 @@ impl ToJson for Type {
413413
match self.name {
414414
Some(ref name) => {
415415
let mut data = BTreeMap::new();
416-
data.insert("name".to_owned(), name.to_json());
416+
data.insert("n".to_owned(), name.to_json());
417417
if let Some(ref generics) = self.generics {
418-
data.insert("generics".to_owned(), generics.to_json());
418+
data.insert("g".to_owned(), generics.to_json());
419419
}
420420
Json::Object(data)
421421
},
@@ -438,8 +438,12 @@ impl ToJson for IndexItemFunctionType {
438438
Json::Null
439439
} else {
440440
let mut data = BTreeMap::new();
441-
data.insert("inputs".to_owned(), self.inputs.to_json());
442-
data.insert("output".to_owned(), self.output.to_json());
441+
if !self.inputs.is_empty() {
442+
data.insert("i".to_owned(), self.inputs.to_json());
443+
}
444+
if let Some(ref output) = self.output {
445+
data.insert("o".to_owned(), output.to_json());
446+
}
443447
Json::Object(data)
444448
}
445449
}
@@ -789,7 +793,8 @@ fn write_shared(cx: &Context,
789793
format!(
790794
r#"var themes = document.getElementById("theme-choices");
791795
var themePicker = document.getElementById("theme-picker");
792-
themePicker.onclick = function() {{
796+
797+
function switchThemeButtonState() {{
793798
if (themes.style.display === "block") {{
794799
themes.style.display = "none";
795800
themePicker.style.borderBottomRightRadius = "3px";
@@ -800,12 +805,29 @@ themePicker.onclick = function() {{
800805
themePicker.style.borderBottomLeftRadius = "0";
801806
}}
802807
}};
808+
809+
function handleThemeButtonsBlur(e) {{
810+
var active = document.activeElement;
811+
var related = e.relatedTarget;
812+
813+
if (active.id !== "themePicker" &&
814+
(!active.parentNode || active.parentNode.id !== "theme-choices") &&
815+
(!related ||
816+
(related.id !== "themePicker" &&
817+
(!related.parentNode || related.parentNode.id !== "theme-choices")))) {{
818+
switchThemeButtonState();
819+
}}
820+
}}
821+
822+
themePicker.onclick = switchThemeButtonState;
823+
themePicker.onblur = handleThemeButtonsBlur;
803824
[{}].forEach(function(item) {{
804825
var but = document.createElement('button');
805826
but.innerHTML = item;
806827
but.onclick = function(el) {{
807828
switchTheme(currentTheme, mainTheme, item);
808829
}};
830+
but.onblur = handleThemeButtonsBlur;
809831
themes.appendChild(but);
810832
}});"#,
811833
themes.iter()
@@ -879,8 +901,8 @@ themePicker.onclick = function() {{
879901
}
880902

881903
fn show_item(item: &IndexItem, krate: &str) -> String {
882-
format!("{{'crate':'{}','ty':{},'name':'{}','path':'{}'{}}}",
883-
krate, item.ty as usize, item.name, item.path,
904+
format!("{{'crate':'{}','ty':{},'name':'{}','desc':'{}','p':'{}'{}}}",
905+
krate, item.ty as usize, item.name, item.desc.replace("'", "\\'"), item.path,
884906
if let Some(p) = item.parent_idx {
885907
format!(",'parent':{}", p)
886908
} else {
@@ -1442,7 +1464,7 @@ impl<'a> Cache {
14421464
ty: item.type_(),
14431465
name: item_name.to_string(),
14441466
path: path.clone(),
1445-
desc: String::new(),
1467+
desc: plain_summary_line(item.doc_value()),
14461468
parent: None,
14471469
parent_idx: None,
14481470
search_type: get_index_search_type(&item),

0 commit comments

Comments
 (0)