func (s *SketchSourceMerger) Run(ctx *types.Context) error { sketch := ctx.Sketch lineOffset := 0 includeSection := "" if !sketchIncludesArduinoH(&sketch.MainFile) { includeSection += "#include <Arduino.h>\n" lineOffset++ } includeSection += "#line 1 " + utils.QuoteCppString(sketch.MainFile.Name) + "\n" lineOffset++ ctx.IncludeSection = includeSection source := includeSection source += addSourceWrappedWithLineDirective(&sketch.MainFile) lineOffset += 1 for _, file := range sketch.OtherSketchFiles { source += addSourceWrappedWithLineDirective(&file) } ctx.LineOffset = lineOffset ctx.Source = source return nil }