fixed leading content logic

This commit is contained in:
Mike Farah
2022-10-28 13:50:22 +11:00
parent b87c1503f4
commit e918bec740
5 changed files with 15 additions and 7 deletions
+7 -2
View File
@@ -16,10 +16,11 @@ type yamlDecoder struct {
prefs YamlPreferences
leadingContent string
readAnything bool
firstFile bool
}
func NewYamlDecoder(prefs YamlPreferences) Decoder {
return &yamlDecoder{prefs: prefs}
return &yamlDecoder{prefs: prefs, firstFile: true}
}
func (dec *yamlDecoder) processReadStream(reader *bufio.Reader) (io.Reader, string, error) {
@@ -58,7 +59,10 @@ func (dec *yamlDecoder) Init(reader io.Reader) error {
readerToUse := reader
leadingContent := ""
var err error
if dec.prefs.LeadingContentPreProcessing {
// if we 'evaluating together' - we only process the leading content
// of the first file - this ensures comments from subsequent files are
// merged together correctly.
if dec.prefs.LeadingContentPreProcessing && (!dec.prefs.EvaluateTogether || dec.firstFile) {
readerToUse, leadingContent, err = dec.processReadStream(bufio.NewReader(reader))
if err != nil {
return err
@@ -67,6 +71,7 @@ func (dec *yamlDecoder) Init(reader io.Reader) error {
dec.leadingContent = leadingContent
dec.readAnything = false
dec.decoder = *yaml.NewDecoder(readerToUse)
dec.firstFile = false
return nil
}
+2
View File
@@ -4,6 +4,7 @@ type YamlPreferences struct {
LeadingContentPreProcessing bool
PrintDocSeparators bool
UnwrapScalar bool
EvaluateTogether bool
}
func NewDefaultYamlPreferences() YamlPreferences {
@@ -11,6 +12,7 @@ func NewDefaultYamlPreferences() YamlPreferences {
LeadingContentPreProcessing: true,
PrintDocSeparators: true,
UnwrapScalar: true,
EvaluateTogether: false,
}
}