in rules/nested_block.go [150:178]
func (b *NestedBlock) buildNestedBlock(nestedBlock *hclsyntax.Block) {
var nestedBlockName, sortField string
switch nestedBlock.Type {
case "dynamic":
nestedBlockName = nestedBlock.Labels[0]
sortField = strings.Join(nestedBlock.Labels, "")
default:
nestedBlockName = nestedBlock.Type
sortField = nestedBlock.Type
}
var parentBlockNames []string
if nestedBlockName == "content" && b.Block.Type == "dynamic" {
parentBlockNames = b.ParentBlockNames
} else {
parentBlockNames = append(b.ParentBlockNames, nestedBlockName)
}
nb := &NestedBlock{
Name: nestedBlockName,
SortField: sortField,
Range: nestedBlock.Range(),
Block: nestedBlock,
ParentBlockNames: parentBlockNames,
File: b.File,
emit: b.emit,
}
nb.buildAttributes(nestedBlock.Body.Attributes)
nb.buildNestedBlocks(nestedBlock.Body.Blocks)
b.addNestedBlock(nb)
}