removed project node from output
This commit is contained in:
@@ -56,27 +56,44 @@ func (b *Builder) Build(f *os.File) error {
|
||||
tree.AddFile(file, config)
|
||||
}
|
||||
|
||||
// Determine root node to print
|
||||
rootNode := tree.Root
|
||||
if expectedProject != "" {
|
||||
if child, ok := tree.Root.Children[expectedProject]; ok {
|
||||
rootNode = child
|
||||
}
|
||||
}
|
||||
|
||||
// Write entire root content (definitions and children) to the single output file
|
||||
b.writeNodeContent(f, tree.Root, 0)
|
||||
b.writeNodeBody(f, rootNode, 0)
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
func (b *Builder) writeNodeContent(f *os.File, node *index.ProjectNode, indent int) {
|
||||
// 1. Sort Fragments: Class first
|
||||
sort.SliceStable(node.Fragments, func(i, j int) bool {
|
||||
return hasClass(node.Fragments[i]) && !hasClass(node.Fragments[j])
|
||||
})
|
||||
|
||||
indentStr := strings.Repeat(" ", indent)
|
||||
|
||||
// If this node has a RealName (e.g. +App), we print it as an object definition
|
||||
if node.RealName != "" {
|
||||
fmt.Fprintf(f, "%s%s = {\n", indentStr, node.RealName)
|
||||
indent++
|
||||
indentStr = strings.Repeat(" ", indent)
|
||||
}
|
||||
|
||||
b.writeNodeBody(f, node, indent)
|
||||
|
||||
if node.RealName != "" {
|
||||
indent--
|
||||
indentStr = strings.Repeat(" ", indent)
|
||||
fmt.Fprintf(f, "%s}\n", indentStr)
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Builder) writeNodeBody(f *os.File, node *index.ProjectNode, indent int) {
|
||||
// 1. Sort Fragments: Class first
|
||||
sort.SliceStable(node.Fragments, func(i, j int) bool {
|
||||
return hasClass(node.Fragments[i]) && !hasClass(node.Fragments[j])
|
||||
})
|
||||
|
||||
writtenChildren := make(map[string]bool)
|
||||
|
||||
// 2. Write definitions from fragments
|
||||
@@ -110,12 +127,6 @@ func (b *Builder) writeNodeContent(f *os.File, node *index.ProjectNode, indent i
|
||||
child := node.Children[k]
|
||||
b.writeNodeContent(f, child, indent)
|
||||
}
|
||||
|
||||
if node.RealName != "" {
|
||||
indent--
|
||||
indentStr = strings.Repeat(" ", indent)
|
||||
fmt.Fprintf(f, "%s}\n", indentStr)
|
||||
}
|
||||
}
|
||||
|
||||
func (b *Builder) writeDefinition(f *os.File, def parser.Definition, indent int) {
|
||||
|
||||
Reference in New Issue
Block a user