Fixed sort dropping head comment #1181

This commit is contained in:
Mike Farah 2022-04-14 12:19:15 +10:00
parent 6f9f80cc48
commit ea66a73f43
4 changed files with 20 additions and 8 deletions

View File

@ -85,14 +85,15 @@ func (n *CandidateNode) CreateChildInArray(index int, node *yaml.Node) *Candidat
func (n *CandidateNode) CreateReplacement(node *yaml.Node) *CandidateNode {
return &CandidateNode{
Node: node,
Path: n.createChildPath(nil),
Parent: n.Parent,
Key: n.Key,
IsMapKey: n.IsMapKey,
Document: n.Document,
Filename: n.Filename,
FileIndex: n.FileIndex,
Node: node,
Path: n.createChildPath(nil),
LeadingContent: n.LeadingContent,
Parent: n.Parent,
Key: n.Key,
IsMapKey: n.IsMapKey,
Document: n.Document,
Filename: n.Filename,
FileIndex: n.FileIndex,
}
}

View File

@ -105,6 +105,7 @@ func getCommentsOperator(d *dataTreeNavigator, context Context, expressionNode *
node := &yaml.Node{Kind: yaml.ScalarNode, Value: comment, Tag: "!!str"}
result := candidate.CreateReplacement(node)
result.LeadingContent = "" // don't include the leading yaml content when retrieving a comment
results.PushBack(result)
}
return context.ChildContext(results), nil

View File

@ -79,6 +79,15 @@ var sortByOperatorScenarios = []expressionScenario{
"D0, P[], (!!seq)::[{a: false, b: 1}, {a: false, b: 3}, {a: true, b: 2}]\n",
},
},
{
skipDoc: true,
description: "head comment",
document: "# abc\n- def\n# ghi",
expression: `sort`,
expected: []string{
"D0, P[], (!!seq)::# abc\n- def\n# ghi\n",
},
},
}
func TestSortByOperatorScenarios(t *testing.T) {

View File

@ -61,6 +61,7 @@ func (s *streamEvaluator) EvaluateFiles(expression string, filenames []string, p
for index, filename := range filenames {
reader, leadingContent, err := readStream(filename, leadingContentPreProcessing)
log.Debug("leadingContent: %v", leadingContent)
if index == 0 {
firstFileLeadingContent = leadingContent