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