mirror of https://github.com/rust-lang/rust.git
rustdoc: Write markdown for fn arguments
This commit is contained in:
parent
29df58d73b
commit
1b839a61c4
|
@ -127,11 +127,39 @@ fn write_args(
|
||||||
ctxt: ctxt,
|
ctxt: ctxt,
|
||||||
args: [doc::argdoc]
|
args: [doc::argdoc]
|
||||||
) {
|
) {
|
||||||
for arg in args {
|
if vec::is_not_empty(args) {
|
||||||
ctxt.w.write_str("### Argument `" + arg.name + "`: ");
|
ctxt.w.write_line("Arguments:");
|
||||||
|
ctxt.w.write_line("");
|
||||||
|
vec::iter(args) {|arg| write_arg(ctxt, arg) };
|
||||||
|
ctxt.w.write_line("");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
fn write_arg(ctxt: ctxt, arg: doc::argdoc) {
|
||||||
|
ctxt.w.write_line(#fmt("* %s", arg.name));
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_write_argument_list() {
|
||||||
|
let source = "fn a(b: int, c: int) { }";
|
||||||
|
let markdown = test::render(source);
|
||||||
|
assert str::contains(
|
||||||
|
markdown,
|
||||||
|
"Arguments:\n\
|
||||||
|
\n\
|
||||||
|
* b\n\
|
||||||
|
* c\n\
|
||||||
|
\n"
|
||||||
|
);
|
||||||
|
}
|
||||||
|
|
||||||
|
#[test]
|
||||||
|
fn should_not_write_arguments_if_none() {
|
||||||
|
let source = "fn a() { } fn b() { }";
|
||||||
|
let markdown = test::render(source);
|
||||||
|
assert !str::contains(markdown, "Arguments");
|
||||||
|
}
|
||||||
|
|
||||||
fn write_return(
|
fn write_return(
|
||||||
ctxt: ctxt,
|
ctxt: ctxt,
|
||||||
return: option<doc::retdoc>
|
return: option<doc::retdoc>
|
||||||
|
@ -157,13 +185,15 @@ fn write_return(
|
||||||
}
|
}
|
||||||
|
|
||||||
#[cfg(test)]
|
#[cfg(test)]
|
||||||
mod tests {
|
mod test {
|
||||||
fn render(source: str) -> str {
|
fn render(source: str) -> str {
|
||||||
let srv = astsrv::mk_srv_from_str(source);
|
let srv = astsrv::mk_srv_from_str(source);
|
||||||
let doc = extract::from_srv(srv, "");
|
let doc = extract::from_srv(srv, "");
|
||||||
let doc = attr_pass::mk_pass()(srv, doc);
|
let doc = attr_pass::mk_pass()(srv, doc);
|
||||||
let doc = tystr_pass::mk_pass()(srv, doc);
|
let doc = tystr_pass::mk_pass()(srv, doc);
|
||||||
write_markdown_str(doc)
|
let markdown = write_markdown_str(doc);
|
||||||
|
#debug("markdown: %s", markdown);
|
||||||
|
markdown
|
||||||
}
|
}
|
||||||
|
|
||||||
fn write_markdown_str(
|
fn write_markdown_str(
|
||||||
|
|
Loading…
Reference in New Issue