xref: /aosp_15_r20/external/bazelbuild-rules_testing/docgen/rule_template.vm (revision d605057434dcabba796c020773aab68d9790ff9f)
1#set( $nl = "
2" )
3#set( $rn = $ruleInfo.ruleName)
4#set( $rnl = $rn.replaceAll("[.]", "_").toLowerCase())
5{.starlark-object}
6#[[##]]# $ruleName
7
8#set( $hasAttrs = false)
9{.starlark-signature}
10${ruleInfo.ruleName}(## Comment to consume newline
11#foreach ($attr in $ruleInfo.getAttributeList())
12#set( $hasAttrs = true)
13[${attr.name}](#${rnl}_${attr.name})## Comment to consume newline
14#if(!$attr.getDefaultValue().isEmpty())
15=$attr.getDefaultValue()#end#if($foreach.hasNext),
16#end
17#end
18)
19
20$ruleInfo.docString
21
22#if ($hasAttrs)
23{#${rnl}_attributes}
24**ATTRIBUTES** [¶](#${rnl}_attributes){.headerlink}
25
26#foreach ($attr in $ruleInfo.getAttributeList())
27#set($link = $rnl + "_" + $attr.name)
28#if($attr.mandatory)
29#set($opt = "required")
30#else
31#set($opt = "optional")
32#end
33#if($attr.type == "NAME")
34#set($type = "[Name][target-name]")
35#elseif($attr.type == "LABEL_LIST")
36#set($type = "list of [label][attr-label]s")
37#end
38#if(!$attr.getDefaultValue().isEmpty())
39#set($default = ", default `" + $attr.getDefaultValue() + "`")
40#else
41#set($default = "")
42#end
43:[${attr.name}[¶](#$link){.headerlink}]{.span}: []{#$link}
44  _($opt $type$default)_
45  $attr.docString.replaceAll("$nl", "$nl  ")
46
47#end
48#end
49