mirror of
https://github.com/mikefarah/yq.git
synced 2026-07-05 03:45:41 +00:00
Add override behavior comments
This commit is contained in:
parent
904215ef4d
commit
70ac3d6c7a
@ -145,6 +145,9 @@ func reconstructAliasedMap(node *CandidateNode, context Context) error {
|
|||||||
// no it needs to recurse in overrideEntry.
|
// no it needs to recurse in overrideEntry.
|
||||||
|
|
||||||
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
||||||
|
// First evaluate merge keys to make explicit keys take precedence, following spec
|
||||||
|
// We also iterate in reverse to make earlier merge keys take precedence,
|
||||||
|
// although normally there's just one '<<'
|
||||||
for index := len(node.Content) - 2; index >= 0; index -= 2 {
|
for index := len(node.Content) - 2; index >= 0; index -= 2 {
|
||||||
keyNode := node.Content[index]
|
keyNode := node.Content[index]
|
||||||
valueNode := node.Content[index+1]
|
valueNode := node.Content[index+1]
|
||||||
@ -255,6 +258,8 @@ func applyMergeAnchor(node *CandidateNode, merge *CandidateNode, mergeIndex int,
|
|||||||
return applyMergeAnchorMap(node, merge, mergeIndex, inline, newContent)
|
return applyMergeAnchorMap(node, merge, mergeIndex, inline, newContent)
|
||||||
case SequenceNode:
|
case SequenceNode:
|
||||||
log.Debugf("a merge list!")
|
log.Debugf("a merge list!")
|
||||||
|
// Reverse to make earlier values take precedence, following spec
|
||||||
|
// Note: This was already the case before FixMergeAnchorToSpec
|
||||||
content := slices.Backward(merge.Content)
|
content := slices.Backward(merge.Content)
|
||||||
for _, childValue := range content {
|
for _, childValue := range content {
|
||||||
childInline := inline
|
childInline := inline
|
||||||
|
|||||||
@ -269,6 +269,9 @@ func doTraverseMap(newMatches *orderedmap.OrderedMap, node *CandidateNode, wante
|
|||||||
|
|
||||||
if !prefs.DontFollowAlias {
|
if !prefs.DontFollowAlias {
|
||||||
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
||||||
|
// First evaluate merge keys to make explicit keys take precedence, following spec
|
||||||
|
// We also iterate in reverse to make earlier merge keys take precedence,
|
||||||
|
// although normally there's just one '<<'
|
||||||
for index := len(node.Content) - 2; index >= 0; index -= 2 {
|
for index := len(node.Content) - 2; index >= 0; index -= 2 {
|
||||||
keyNode := node.Content[index]
|
keyNode := node.Content[index]
|
||||||
valueNode := node.Content[index+1]
|
valueNode := node.Content[index+1]
|
||||||
@ -330,6 +333,7 @@ func traverseMergeAnchor(newMatches *orderedmap.OrderedMap, merge *CandidateNode
|
|||||||
case SequenceNode:
|
case SequenceNode:
|
||||||
content := slices.All(merge.Content)
|
content := slices.All(merge.Content)
|
||||||
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
if ConfiguredYamlPreferences.FixMergeAnchorToSpec {
|
||||||
|
// Reverse to make earlier values take precedence, following spec
|
||||||
content = slices.Backward(merge.Content)
|
content = slices.Backward(merge.Content)
|
||||||
}
|
}
|
||||||
for _, childValue := range content {
|
for _, childValue := range content {
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user