Major surgery on the index and resolver. A complete flip in design.

Signed-off-by: quobix <dave@quobix.com>
This commit is contained in:
quobix
2023-10-14 12:36:38 -04:00
parent de85651414
commit 511843e4df
29 changed files with 592 additions and 354 deletions

View File

@@ -57,14 +57,14 @@ func LocateRefNode(root *yaml.Node, idx *index.SpecIndex) (*yaml.Node, error) {
// if there are any external indexes being used by remote
// documents, then we need to search through them also.
externalIndexes := idx.GetAllExternalIndexes()
if len(externalIndexes) > 0 {
var extCollection []func() map[string]*index.Reference
for _, extIndex := range externalIndexes {
extCollection = generateIndexCollection(extIndex)
collections = append(collections, extCollection...)
}
}
//externalIndexes := idx.GetAllExternalIndexes()
//if len(externalIndexes) > 0 {
// var extCollection []func() map[string]*index.Reference
// for _, extIndex := range externalIndexes {
// extCollection = generateIndexCollection(extIndex)
// collections = append(collections, extCollection...)
// }
//}
var found map[string]*index.Reference
for _, collection := range collections {
@@ -501,6 +501,7 @@ func ExtractMapExtensions[PT Buildable[N], N any](
}
} else {
_, labelNode, valueNode = utils.FindKeyNodeFull(label, root.Content)
valueNode = utils.NodeAlias(valueNode)
if valueNode != nil {
if h, _, rvt := utils.IsNodeRefValue(valueNode); h {
ref, err := LocateRefNode(valueNode, idx)