diff --git a/src/etc/htmldocck.py b/src/etc/htmldocck.py index a930a0d0833..a5449b748dd 100644 --- a/src/etc/htmldocck.py +++ b/src/etc/htmldocck.py @@ -117,6 +117,7 @@ from xml.etree import cElementTree as ET from htmlentitydefs import entitydefs entitydefs['larrb'] = u'\u21e4' entitydefs['rarrb'] = u'\u21e5' +entitydefs['nbsp'] = ' ' # "void elements" (no closing tag) from the HTML Standard section 12.1.2 VOID_ELEMENTS = set(['area', 'base', 'br', 'col', 'embed', 'hr', 'img', 'input', 'keygen', diff --git a/src/librustdoc/html/format.rs b/src/librustdoc/html/format.rs index d4fdafea88a..92401a5c55f 100644 --- a/src/librustdoc/html/format.rs +++ b/src/librustdoc/html/format.rs @@ -111,27 +111,27 @@ impl fmt::Display for clean::Generics { for (i, life) in self.lifetimes.iter().enumerate() { if i > 0 { - f.write_str(", ")?; + f.write_str(", ")?; } write!(f, "{}", *life)?; } if !self.type_params.is_empty() { if !self.lifetimes.is_empty() { - f.write_str(", ")?; + f.write_str(", ")?; } for (i, tp) in self.type_params.iter().enumerate() { if i > 0 { - f.write_str(", ")? + f.write_str(", ")? } f.write_str(&tp.name)?; if !tp.bounds.is_empty() { - write!(f, ": {}", TyParamBounds(&tp.bounds))?; + write!(f, ": {}", TyParamBounds(&tp.bounds))?; } match tp.default { - Some(ref ty) => { write!(f, " = {}", ty)?; }, + Some(ref ty) => { write!(f, " = {}", ty)?; }, None => {} }; } @@ -229,21 +229,21 @@ impl fmt::Display for clean::PathParameters { let mut comma = false; for lifetime in lifetimes { if comma { - f.write_str(", ")?; + f.write_str(", ")?; } comma = true; write!(f, "{}", *lifetime)?; } for ty in types { if comma { - f.write_str(", ")?; + f.write_str(", ")?; } comma = true; write!(f, "{}", *ty)?; } for binding in bindings { if comma { - f.write_str(", ")?; + f.write_str(", ")?; } comma = true; write!(f, "{}", *binding)?; diff --git a/src/librustdoc/html/render.rs b/src/librustdoc/html/render.rs index 7357ff3abac..396f71173f8 100644 --- a/src/librustdoc/html/render.rs +++ b/src/librustdoc/html/render.rs @@ -2243,26 +2243,24 @@ fn item_struct(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, write!(w, "")?; document(w, cx, it)?; - let mut fields = s.fields.iter().filter(|f| { + let mut fields = s.fields.iter().filter_map(|f| { match f.inner { - clean::StructFieldItem(..) => true, - _ => false, + clean::StructFieldItem(ref ty) => Some((f, ty)), + _ => None, } }).peekable(); if let doctree::Plain = s.struct_type { if fields.peek().is_some() { - write!(w, "

Fields

\n")?; - for field in fields { - write!(w, " - ")?; } - write!(w, "
\ - {name}", + write!(w, "

Fields

")?; + for (field, ty) in fields { + write!(w, "{name}: {ty} + ", shortty = ItemType::StructField, stab = field.stability_class(), - name = field.name.as_ref().unwrap())?; + name = field.name.as_ref().unwrap(), + ty = ty)?; document(w, cx, field)?; - write!(w, "
")?; } } render_assoc_items(w, cx, it, it.def_id, AssocItemRender::All) @@ -2292,7 +2290,7 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, write!(w, "{}(", name)?; for (i, ty) in tys.iter().enumerate() { if i > 0 { - write!(w, ", ")? + write!(w, ", ")? } write!(w, "{}", *ty)?; } @@ -2324,40 +2322,47 @@ fn item_enum(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item, document(w, cx, it)?; if !e.variants.is_empty() { - write!(w, "

Variants

\n")?; + write!(w, "

Variants

\n")?; for variant in &e.variants { - write!(w, "")?; } - write!(w, "
{name}", + write!(w, "{name}", shortty = ItemType::Variant, name = variant.name.as_ref().unwrap())?; + if let clean::VariantItem(ref var) = variant.inner { + if let clean::TupleVariant(ref tys) = var.kind { + write!(w, "(")?; + for (i, ty) in tys.iter().enumerate() { + if i > 0 { + write!(w, ", ")?; + } + write!(w, "{}", *ty)?; + } + write!(w, ")")?; + } + } + write!(w, "")?; document(w, cx, variant)?; use clean::{Variant, StructVariant}; if let clean::VariantItem( Variant { kind: StructVariant(ref s) } ) = variant.inner { - let fields = s.fields.iter().filter(|f| { - match f.inner { - clean::StructFieldItem(..) => true, - _ => false, - } - }); write!(w, "

Fields

\n ")?; - for field in fields { - write!(w, "")?; + for field in &s.fields { + use clean::StructFieldItem; + if let StructFieldItem(ref ty) = field.inner { + write!(w, "")?; + } } write!(w, "
\ - {f}", - shortty = ItemType::Variant, - v = variant.name.as_ref().unwrap(), - f = field.name.as_ref().unwrap())?; - document(w, cx, field)?; - write!(w, "
\ + {f}: {t}", + v = variant.name.as_ref().unwrap(), + f = field.name.as_ref().unwrap(), + t = *ty)?; + document(w, cx, field)?; + write!(w, "
")?; } - write!(w, "
")?; render_stability_since(w, variant, it)?; - write!(w, "
")?; } render_assoc_items(w, cx, it, it.def_id, AssocItemRender::All)?; Ok(()) diff --git a/src/librustdoc/html/static/rustdoc.css b/src/librustdoc/html/static/rustdoc.css index 8e4245d4ebf..bfe3f7b8dd6 100644 --- a/src/librustdoc/html/static/rustdoc.css +++ b/src/librustdoc/html/static/rustdoc.css @@ -265,6 +265,10 @@ nav.sub { .docblock h2 { font-size: 1.15em; } .docblock h3, .docblock h4, .docblock h5 { font-size: 1em; } +.docblock { + margin-left: 24px; +} + .content .out-of-band { font-size: 23px; margin: 0px; @@ -640,6 +644,21 @@ span.since { margin-right: 5px; } +.enum > .toggle-wrapper > .collapse-toggle, .struct > .toggle-wrapper > .collapse-toggle { + left: 0; + margin-top: 5px; +} + +.enum > .toggle-wrapper + .docblock, .struct > .toggle-wrapper + .docblock { + margin-left: 30px; + margin-bottom: 20px; + margin-top: 5px; +} + +.enum > .collapsed, .struct > .collapsed { + margin-bottom: 25px; +} + :target > code { background: #FDFFD3; }