Project sequence origins from incoming to final item paths

This commit is contained in:
2026-10-23 23:51:33 +00:00
parent f8cbb2ed87
commit e6598810e0
5 changed files with 130 additions and 20 deletions

View File

@@ -70,8 +70,14 @@ func mergeInheritanceOrigin(origins map[string]Origin, path Path, incoming Origi
}
func copyInheritanceSubtree(target, incoming map[string]Origin, node *document.Node, root Path) {
walkDocument(node, root, func(path Path, _ *document.Node) {
target[path.String()] = cloneOrigin(incoming[path.String()])
copyInheritanceSubtreeAt(target, incoming, node, root, root)
}
func copyInheritanceSubtreeAt(target, incoming map[string]Origin, node *document.Node, from, to Path) {
walkDocument(node, Path{}, func(relative Path, _ *document.Node) {
source := appendDestination(from, relative)
destination := appendDestination(to, relative)
target[destination.String()] = cloneOrigin(incoming[source.String()])
})
}