@@ -107,12 +107,37 @@ fn write_fn(
107
107
doc : doc:: fndoc
108
108
) {
109
109
write_header ( ctxt, h3, #fmt ( "Function `%s`" , doc. name ) ) ;
110
+ write_sig ( ctxt, doc. sig ) ;
110
111
write_brief ( ctxt, doc. brief ) ;
111
112
write_desc ( ctxt, doc. desc ) ;
112
113
write_args ( ctxt, doc. args ) ;
113
114
write_return ( ctxt, doc. return ) ;
114
115
}
115
116
117
+ fn write_sig ( ctxt : ctxt , sig : option < str > ) {
118
+ alt sig {
119
+ some( sig) {
120
+ ctxt. w . write_line ( "```" ) ;
121
+ ctxt. w . write_line ( #fmt ( "%s" , sig) ) ;
122
+ ctxt. w . write_line ( "```" ) ;
123
+ ctxt. w . write_line ( "" ) ;
124
+ }
125
+ none { fail "unimplemented" }
126
+ }
127
+ }
128
+
129
+ #[ test]
130
+ fn should_write_the_function_signature ( ) {
131
+ let markdown = test:: render ( "#[doc = \" f\" ] fn a() { }" ) ;
132
+ assert str:: contains ( markdown, "```\n fn a()\n ```" ) ;
133
+ }
134
+
135
+ #[ test]
136
+ fn should_insert_blank_line_after_fn_signature ( ) {
137
+ let markdown = test:: render ( "#[doc = \" f\" ] fn a() { }" ) ;
138
+ assert str:: contains ( markdown, "fn a()\n ```\n \n " ) ;
139
+ }
140
+
116
141
fn write_brief (
117
142
ctxt : ctxt ,
118
143
brief : option < str >
@@ -254,9 +279,13 @@ mod test {
254
279
fn render ( source : str ) -> str {
255
280
let srv = astsrv:: mk_srv_from_str ( source) ;
256
281
let doc = extract:: from_srv ( srv, "" ) ;
282
+ #debug ( "doc (extract): %?" , doc) ;
257
283
let doc = tystr_pass:: mk_pass ( ) ( srv, doc) ;
284
+ #debug ( "doc (tystr): %?" , doc) ;
258
285
let doc = path_pass:: mk_pass ( ) ( srv, doc) ;
286
+ #debug ( "doc (path): %?" , doc) ;
259
287
let doc = attr_pass:: mk_pass ( ) ( srv, doc) ;
288
+ #debug ( "doc (attr): %?" , doc) ;
260
289
let markdown = write_markdown_str ( doc) ;
261
290
#debug ( "markdown: %s" , markdown) ;
262
291
markdown
@@ -299,9 +328,9 @@ mod test {
299
328
}
300
329
301
330
#[ test]
302
- fn should_leave_blank_line_between_fn_header_and_brief ( ) {
331
+ fn should_leave_blank_line_between_fn_header_and_sig ( ) {
303
332
let markdown = render ( "#[doc(brief = \" brief\" )] fn a() { }" ) ;
304
- assert str:: contains ( markdown, "Function `a`\n \n brief " ) ;
333
+ assert str:: contains ( markdown, "Function `a`\n \n ``` \n fn a() " ) ;
305
334
}
306
335
307
336
#[ test]
0 commit comments