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