Skip to content

Commit fb442a7

Browse files
author
QuietMisdreavus
committed
rustdoc: format bare functions like rustfmt
see commit 2a274e7 for details
1 parent 2a274e7 commit fb442a7

File tree

2 files changed

+37
-32
lines changed

2 files changed

+37
-32
lines changed

src/librustdoc/html/format.rs

Lines changed: 29 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -621,17 +621,19 @@ impl fmt::Display for clean::Type {
621621
clean::Generic(_) =>
622622
if f.alternate() {
623623
primitive_link(f, PrimitiveType::Slice,
624-
&format!("&{}{}[{:#}]", lt, m, **bt))
624+
&format!("&{}{}[{:#}]", lt, m, **bt))
625625
} else {
626626
primitive_link(f, PrimitiveType::Slice,
627627
&format!("&{}{}[{}]", lt, m, **bt))
628628
},
629629
_ => {
630-
primitive_link(f, PrimitiveType::Slice,
631-
&format!("&{}{}[", lt, m))?;
632630
if f.alternate() {
631+
primitive_link(f, PrimitiveType::Slice,
632+
&format!("&{}{}[", lt, m))?;
633633
write!(f, "{:#}", **bt)?;
634634
} else {
635+
primitive_link(f, PrimitiveType::Slice,
636+
&format!("&{}{}[", lt, m))?;
635637
write!(f, "{}", **bt)?;
636638
}
637639
primitive_link(f, PrimitiveType::Slice, "]")
@@ -640,7 +642,7 @@ impl fmt::Display for clean::Type {
640642
}
641643
_ => {
642644
if f.alternate() {
643-
write!(f, "&{}{}{:#}", lt, m, **ty)
645+
write!(f, "&{}{}{:#}", lt, m, **ty)
644646
} else {
645647
write!(f, "&{}{}{}", lt, m, **ty)
646648
}
@@ -757,7 +759,6 @@ pub fn fmt_impl_for_trait_page(i: &clean::Impl, f: &mut fmt::Formatter) -> fmt::
757759
impl fmt::Display for clean::Arguments {
758760
fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result {
759761
for (i, input) in self.values.iter().enumerate() {
760-
write!(f, "\n ")?;
761762
if !input.name.is_empty() {
762763
write!(f, "{}: ", input.name)?;
763764
}
@@ -766,10 +767,7 @@ impl fmt::Display for clean::Arguments {
766767
} else {
767768
write!(f, "{}", input.type_)?;
768769
}
769-
if i + 1 < self.values.len() { write!(f, ",")?; }
770-
}
771-
if !self.values.is_empty() {
772-
write!(f, "\n")?;
770+
if i + 1 < self.values.len() { write!(f, ", ")?; }
773771
}
774772
Ok(())
775773
}
@@ -819,14 +817,12 @@ impl<'a> fmt::Display for Method<'a> {
819817
args_plain.push_str("self");
820818
}
821819
clean::SelfBorrowed(Some(ref lt), mtbl) => {
822-
let arg = format!("{}{} {}self", amp, *lt, MutableSpace(mtbl));
823-
args.push_str(&arg);
824-
args_plain.push_str(&arg);
820+
args.push_str(&format!("{}{} {}self", amp, *lt, MutableSpace(mtbl)));
821+
args_plain.push_str(&format!("&{} {}self", *lt, MutableSpace(mtbl)));
825822
}
826823
clean::SelfBorrowed(None, mtbl) => {
827-
let arg = format!("{}{}self", amp, MutableSpace(mtbl));
828-
args.push_str(&arg);
829-
args_plain.push_str(&arg);
824+
args.push_str(&format!("{}{}self", amp, MutableSpace(mtbl)));
825+
args_plain.push_str(&format!("&{}self", MutableSpace(mtbl)));
830826
}
831827
clean::SelfExplicit(ref typ) => {
832828
if f.alternate() {
@@ -839,13 +835,14 @@ impl<'a> fmt::Display for Method<'a> {
839835
}
840836
} else {
841837
if i > 0 {
842-
args.push_str("\n ");
843-
args_plain.push_str("\n ");
838+
args.push_str("<br> ");
839+
args_plain.push_str(" ");
844840
}
845841
if !input.name.is_empty() {
846842
args.push_str(&format!("{}: ", input.name));
847843
args_plain.push_str(&format!("{}: ", input.name));
848844
}
845+
849846
if f.alternate() {
850847
args.push_str(&format!("{:#}", input.type_));
851848
} else {
@@ -859,6 +856,11 @@ impl<'a> fmt::Display for Method<'a> {
859856
}
860857
}
861858

859+
if decl.variadic {
860+
args.push_str(",<br> ...");
861+
args_plain.push_str(", ...");
862+
}
863+
862864
let arrow_plain = format!("{:#}", decl.output);
863865
let arrow = if f.alternate() {
864866
format!("{:#}", decl.output)
@@ -870,17 +872,20 @@ impl<'a> fmt::Display for Method<'a> {
870872
let plain: String;
871873
if arrow.is_empty() {
872874
output = format!("({})", args);
873-
plain = format!("({})", args_plain);
875+
plain = format!("{}({})", indent.replace("&nbsp;", " "), args_plain);
874876
} else {
875-
output = format!("({args})\n{arrow}", args = args, arrow = arrow);
876-
plain = format!("({args})\n{arrow}", args = args_plain, arrow = arrow_plain);
877+
output = format!("({args})<br>{arrow}", args = args, arrow = arrow);
878+
plain = format!("{indent}({args}){arrow}",
879+
indent = indent.replace("&nbsp;", " "),
880+
args = args_plain,
881+
arrow = arrow_plain);
877882
}
878883

879-
if plain.replace("\n", "").len() > 80 {
880-
let pad = format!("\n{}", indent);
881-
output = output.replace("\n", &pad);
884+
if plain.len() > 80 {
885+
let pad = format!("<br>{}", indent);
886+
output = output.replace("<br>", &pad);
882887
} else {
883-
output = output.replace("\n", "");
888+
output = output.replace("<br>", "");
884889
}
885890
write!(f, "{}", output)
886891
}

src/librustdoc/html/render.rs

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1975,13 +1975,13 @@ fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
19751975
UnstableFeatures::Allow => f.constness,
19761976
_ => hir::Constness::NotConst
19771977
};
1978-
let prefix = format!("{vis}{constness}{unsafety}{abi:#}fn {name}{generics:#}",
1979-
vis = VisSpace(&it.visibility),
1980-
constness = ConstnessSpace(vis_constness),
1981-
unsafety = UnsafetySpace(f.unsafety),
1982-
abi = AbiSpace(f.abi),
1983-
name = it.name.as_ref().unwrap(),
1984-
generics = f.generics)?;
1978+
let prefix = format!("{}{}{}{:#}fn {}{:#}",
1979+
VisSpace(&it.visibility),
1980+
ConstnessSpace(vis_constness),
1981+
UnsafetySpace(f.unsafety),
1982+
AbiSpace(f.abi),
1983+
it.name.as_ref().unwrap(),
1984+
f.generics);
19851985
let indent = repeat("&nbsp;").take(prefix.len()).collect::<String>();
19861986
write!(w, "<pre class='rust fn'>{vis}{constness}{unsafety}{abi}fn \
19871987
{name}{generics}{decl}{where_clause}</pre>",
@@ -1992,7 +1992,7 @@ fn item_function(w: &mut fmt::Formatter, cx: &Context, it: &clean::Item,
19921992
name = it.name.as_ref().unwrap(),
19931993
generics = f.generics,
19941994
where_clause = WhereClause(&f.generics),
1995-
decl = f.decl)?;
1995+
decl = Method(&f.decl, &indent))?;
19961996
document(w, cx, it)
19971997
}
19981998

0 commit comments

Comments
 (0)